Link to the code that reproduces this issue
https://github.com/illiakovalenko/app-router-draft-mode-proxy-bug
To Reproduce
- Deploy application to Vercel
- Visit
<host>/api/render url
Current vs. Expected behavior
Current behaviour
I followed the documentation for draftMode and want to pass search parameters via redirect and access them on the page after I hit the route handler: https://nextjs.org/docs/app/guides/draft-mode#step-2-access-the-route-handler-from-your-headless-cms
On Next.js App Router v16 deployed to Vercel, searchParams are empty on a statically generated page, even when Draft Mode is enabled. The same setup works correctly on Next.js 15. This issue does not occur locally with next dev or next start - it only happens on Vercel production deployments.
The route handler redirects to: /test?language=en×tamp=1775717500894
Expected behaviour
When Draft Mode is enabled, the page should receive the full searchParams object, even if the route is statically generated. This allows the page to remain static (SSG) for normal traffic while switching to dynamic preview behavior in Draft Mode.
Provide environment information
Operating System:
Platform: win32
Arch: x64
Version: Windows 11 Enterprise
Available memory (MB): 32213
Available CPU cores: 16
Binaries:
Node: 22.22.0
npm: 10.9.4
Yarn: 4.12.0
pnpm: 10.33.0
Relevant Packages:
next: 16.2.1-canary.29 // Latest available version is detected (16.2.1-canary.29).
eslint-config-next: N/A
react: 19.2.4
react-dom: 19.2.4
typescript: 5.9.3
Next.js Config:
output: N/A
Which area(s) are affected? (Select all that apply)
Draft Mode, Dynamic Routes
Which stage(s) are affected? (Select all that apply)
Vercel (Deployed)
Additional context
I tested this using Next.js 15, and it becomes reproducible in Next.js 16.
The issue is reproducible when deployed to Vercel, but it does not occur locally.
Link to the code that reproduces this issue
https://github.com/illiakovalenko/app-router-draft-mode-proxy-bug
To Reproduce
<host>/api/renderurlCurrent vs. Expected behavior
Current behaviour
I followed the documentation for
draftModeand want to pass search parameters viaredirectand access them on the page after I hit the route handler: https://nextjs.org/docs/app/guides/draft-mode#step-2-access-the-route-handler-from-your-headless-cmsOn Next.js App Router v16 deployed to Vercel,
searchParamsare empty on a statically generated page, even when Draft Mode is enabled. The same setup works correctly on Next.js 15. This issue does not occur locally withnext devornext start- it only happens on Vercel production deployments.The route handler redirects to:
/test?language=en×tamp=1775717500894Expected behaviour
When Draft Mode is enabled, the page should receive the full
searchParamsobject, even if the route is statically generated. This allows the page to remain static (SSG) for normal traffic while switching to dynamic preview behavior in Draft Mode.Provide environment information
Which area(s) are affected? (Select all that apply)
Draft Mode, Dynamic Routes
Which stage(s) are affected? (Select all that apply)
Vercel (Deployed)
Additional context
I tested this using Next.js 15, and it becomes reproducible in Next.js 16.
The issue is reproducible when deployed to Vercel, but it does not occur locally.