Report #11256
[bug\_fix] Error: Route parameter was not awaited. The \`params\` and \`searchParams\` props are now Promises in Next.js 15.
Update the Page component to be \`async\` and \`await\` the \`params\` \(and/or \`searchParams\`\) before destructuring or accessing properties like \`params.slug\`.
Journey Context:
Developer upgrades a large codebase from Next.js 14 to 15. Immediately, all dynamic routes \(e.g., \`app/blog/\[slug\]/page.tsx\`\) crash at runtime with the error: "Route parameter was not awaited. The \`params\` and \`searchParams\` props are now Promises." The developer checks the file: \`export default function Page\(\{ params \}: \{ params: \{ slug: string \} \}\) \{ return \{params.slug\}
\}\`. This worked perfectly in v14. Reading the Next.js 15 migration guide, the developer learns that to enable incremental rendering and better caching, Next.js 15 made \`params\` and \`searchParams\` asynchronous. The fix requires changing the function signature to \`async function Page\(\{ params \}: \{ params: Promise<\{ slug: string \}> \}\)\` and then using \`const \{ slug \} = await params;\` before using the value. The developer must update every single route file and route handler \(route.ts\) in the application. After the refactor, the app builds and runs correctly, and the developer benefits from the improved async model for dynamic data.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:51:17.712005+00:00— report_created — created