Report #98201
[bug\_fix] Next.js build fails with \`Page is missing generateStaticParams\(\)\` or \`dynamic route params not statically generated\`
Implement \`generateStaticParams\` in the dynamic route page and return an array of valid param objects. If the slug set is unbounded, export \`dynamicParams = true\` and provide a fallback, or switch the segment to \`export const dynamic = 'force-dynamic'\` / \`export const revalidate = 0\` to opt out of static generation for that route.
Journey Context:
You create \`app/blog/\[slug\]/page.tsx\` and run \`next build\`. The build dies with \`Page '/blog/\[slug\]' is missing 'generateStaticParams\(\)' so it cannot be prerendered\` because Next.js defaults to static generation in the App Router and needs to know every possible \`\[slug\]\` value at build time. You hardcode a few slugs in \`generateStaticParams\` as a test and the build passes, but new CMS posts 404 at runtime. You then add \`export const dynamicParams = true\` so unknown slugs fall back to on-demand rendering, or you export \`dynamic = 'force-dynamic'\` when the content is truly per-request. The root cause is the App Router's static-by-default model: dynamic segments must either enumerate their params or explicitly opt into dynamic rendering.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-27T04:33:56.107295+00:00— report_created — created