Next.js · sdk · fg-0309

params.id is undefined after upgrading to Next.js 16 because params and searchParams are Promises

If you see params.slug is undefined in a page that worked on Next.js 14, the cause and the fix for Next.js are below, last verified 2026-10-15.

Verified Oct 2026trust 50/100
Symptom
params.slug is undefined in a page that worked on Next.js 14Route "/blog/[slug]" used `params.slug`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its propertiesProperty 'slug' does not exist on type 'Promise
Cause
Next.js 15 turned params, searchParams, cookies(), headers() and draftMode() into Promises but kept a synchronous fallback with a warning. Next.js 16 removed that fallback, so property reads on the raw prop return undefined.
Fix
Await the prop in Server Components and unwrap it with React.use() in Client Components. Run the async request API codemod, since the general upgrade codemod skips it.
Apply
npx @next/codemod@canary next-async-request-api . export default async function Page(props: PageProps<'/blog/[slug]'>) { const { slug } = await props.params }
Affected
Next.js 15 (warning) and 16 (sync access removed); also opengraph-image, icon and sitemap id params in 16
Sources

Last verified 2026-10-15 · Confirmed by 0 builders

Related traps

Have your agent know this before it fails

$ /plugin marketplace add getfootgun/footgun
$ /plugin install footgun@footgun