nextjs - 💡(How to fix) Fix Next.js logs BAILOUT_TO_CLIENT_SIDE_RENDERING on the not-found render, despite a Suspense boundary

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error: Bail out to client-side rendering: useSearchParams() digest: 'BAILOUT_TO_CLIENT_SIDE_RENDERING'

Code Example

Error: Bail out to client-side rendering: useSearchParams()
  digest: 'BAILOUT_TO_CLIENT_SIDE_RENDERING'

---

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
RAW_BUFFERClick to expand / collapse

Link to the code that reproduces this issue

https://github.com/arjenblokzijl/next-notfound-bailout-repro

To Reproduce

  1. npm install
  2. npm run build
  3. 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

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING