Skip to content

Next.js logs BAILOUT_TO_CLIENT_SIDE_RENDERING on the not-found render, despite a Suspense boundary #94541

@arjenblokzijl

Description

@arjenblokzijl

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

Metadata

Metadata

Assignees

Labels

Cache ComponentsRelated to the `cacheComponents`, `useCache`, or `ppr` experimental flags.Error HandlingRelated to handling errors (e.g., error.tsx, global-error.tsx).Not FoundRelated to the not-found.tsx file or the notFound() function.

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions