instant-navigation-validation.mdx
title: Instant Navigation validation errors
Instant Navigation validation checks whether a route can produce the UI required at each navigation stage. This page collects the errors and non-blocking insights it can report.
Debug validation errors
Start with next dev and open the affected route. The development overlay and terminal show source-mapped stack frames and rerun validation as you edit.
If the error only appears during next build, follow Debug prerender errors to enable more detailed stack traces and code frames. You can combine --debug-prerender with --debug-build-paths to focus on specific routes.
Static shell and prerendering
- Runtime data during prerendering
- Uncached data during prerendering
- URL data in a Client Component outside of Suspense
- Runtime data in
generateMetadata() - Uncached data in
generateMetadata() - Runtime data in
generateViewport() - Uncached data in
generateViewport() - Uncached data outside of Suspense
Unstable values
Math.random()while prerenderingMath.random()in a Client ComponentDate.now()while prerenderingDate.now()in a Client Component- Crypto APIs while prerendering
- Crypto APIs in a Client Component
Non-blocking insights
These insights identify work that is deferred to a later navigation stage, or changes what a prefetch contains, without blocking navigation.
prefetch()ornavigation()outside of Suspenseprefetch()ornavigation()ingenerateMetadata()prefetch()ornavigation()ingenerateViewport()- Dynamic data during prefetching
- URL data outside of Suspense
- Unrendered segment
Fully static routes
These errors occur when a route uses ensureStatic = 'navigation'. The requirement applies even inside <Suspense> because the complete server-rendered route must be static.
Rendered from the public repository vercel/next.js on GitHub; content belongs to its authors. Cached for up to an hour.