Skip to content

Surface an error for blocking routes under the Navigation Inspector#95139

Merged
acdlite merged 1 commit into
canaryfrom
acdlite/instant-nav-blocking-route-error
Jun 24, 2026
Merged

Surface an error for blocking routes under the Navigation Inspector#95139
acdlite merged 1 commit into
canaryfrom
acdlite/instant-nav-blocking-route-error

Conversation

@acdlite

@acdlite acdlite commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

When the Navigation Inspector (Instant Navigation Testing API) is active, the server renders only a route's static shell. A blocking route — one that reads a dynamic value such as await cookies() at the root with no Suspense boundary above it, opting into blocking via export const instant = false — produces an empty shell. We served that empty shell directly, so the browser showed a blank document with no DevTools. With no DevTools, there's no way to release the inspector lock from the UI, so every reload stayed blank and the user was stuck.

Detect the empty static shell at serve time and throw to surface a normal error page instead, and clear the instant-navigation cookie so the next reload renders the route normally.

In the future we plan to render this error message inline in the Navigation Inspector panel rather than as a full-page error.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Tests Passed

Commit: 678bae5

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Stats cancelled

Commit: 678bae5
View workflow run

@acdlite acdlite marked this pull request as ready for review June 24, 2026 20:46
When the Navigation Inspector (Instant Navigation Testing API) is active,
the server renders only a route's static shell. A blocking route — one
that reads a dynamic value such as `await cookies()` at the root with no
Suspense boundary above it, opting into blocking via `export const
instant = false` — produces an empty shell. We served that empty shell
directly, so the browser showed a blank document with no DevTools. With
no DevTools, there's no way to release the inspector lock from the UI, so
every reload stayed blank and the user was stuck.

Detect the empty static shell at serve time and throw to surface a normal
error page instead, and clear the instant-navigation cookie so the next
reload renders the route normally.

In the future we plan to render this error message inline in the
Navigation Inspector panel rather than as a full-page error.
@acdlite acdlite force-pushed the acdlite/instant-nav-blocking-route-error branch from 3bce27d to 678bae5 Compare June 24, 2026 20:51
@acdlite acdlite enabled auto-merge (squash) June 24, 2026 20:53
@acdlite acdlite merged commit ff59f10 into canary Jun 24, 2026
221 of 226 checks passed
@acdlite acdlite deleted the acdlite/instant-nav-blocking-route-error branch June 24, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants