Link to the code that reproduces this issue
https://github.com/arjenblokzijl/next-notfound-bailout-repro
To Reproduce
- npm install
- npm run build
- npm start
curl -i http://localhost:3000/some-missing-page
Watch the npm start server console. The first request for a given missing URL prints the Bail out to client-side rendering: useSearchParams() error. (Requests are also logged at build time when the seeded param is prerendered.)
Current vs. Expected behavior
Current
A <Suspense>-wrapped useSearchParams() client component logs an error on every cache-MISS not-found render, despite the Suspense boundary:
Error: Bail out to client-side rendering: useSearchParams()
digest: 'BAILOUT_TO_CLIENT_SIDE_RENDERING'
The 404 renders fine and returns 404 — only the logging (also hitting onRequestError/Sentry) is wrong. Fires once per unique missing URL; silent on cache HITs.
Expected
Nothing logged — same as the normal render path, which filters recovered CSR bailouts. The not-found render calls renderToFizzStream with no onError, so React's default console.error logs them.
Provide environment information
Operating System:
Platform: darwin
Arch: arm64
Version: Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:06 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6030
Available memory (MB): 18432
Available CPU cores: 12
Binaries:
Node: 22.22.2
npm: 10.9.7
Yarn: N/A
pnpm: 11.1.0
Relevant Packages:
next: 16.2.7 // Latest available version is detected (16.2.7).
eslint-config-next: N/A
react: 19.2.0
react-dom: 19.2.0
typescript: N/A
Next.js Config:
output: N/A
Which area(s) are affected? (Select all that apply)
cacheComponents, Error Handling, Not Found
Which stage(s) are affected? (Select all that apply)
next start (local), vercel
Additional context
No response
Link to the code that reproduces this issue
https://github.com/arjenblokzijl/next-notfound-bailout-repro
To Reproduce
curl -i http://localhost:3000/some-missing-pageWatch the npm start server console. The first request for a given missing URL prints the Bail out to client-side rendering: useSearchParams() error. (Requests are also logged at build time when the seeded param is prerendered.)
Current vs. Expected behavior
Current
A
<Suspense>-wrappeduseSearchParams()client component logs an error on every cache-MISS not-found render, despite the Suspense boundary:The 404 renders fine and returns 404 — only the logging (also hitting
onRequestError/Sentry) is wrong. Fires once per unique missing URL; silent on cache HITs.Expected
Nothing logged — same as the normal render path, which filters recovered CSR bailouts. The not-found render calls
renderToFizzStreamwith noonError, so React's defaultconsole.errorlogs them.Provide environment information
Operating System: Platform: darwin Arch: arm64 Version: Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:06 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6030 Available memory (MB): 18432 Available CPU cores: 12 Binaries: Node: 22.22.2 npm: 10.9.7 Yarn: N/A pnpm: 11.1.0 Relevant Packages: next: 16.2.7 // Latest available version is detected (16.2.7). eslint-config-next: N/A react: 19.2.0 react-dom: 19.2.0 typescript: N/A Next.js Config: output: N/AWhich area(s) are affected? (Select all that apply)
cacheComponents, Error Handling, Not Found
Which stage(s) are affected? (Select all that apply)
next start (local), vercel
Additional context
No response