Next.js v16.0.3stable Released Nov 13, 2025
Impact Score: 5/10

Next.js v16.0.3 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: nextjs ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
$ npm install --save-exact [email protected]
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Next.js v16.0.3. Source highlight: fix: Rspack throw error when using ForceCompleteRuntimePlugin: #85221

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • chore: Add `opt-level = s` for not frequently used crates: #85426
  • [test] Add test cases for dynamic caches without suspense boundaries: #85500
  • Turbopack: add track_caller to improve panics: #85565
  • Turbopack: add verify_determinism feature to check if tasks are deterministic: #85559
  • Turbopack: add size_hint and len for Chunk iterator: #85622
  • Turbopack: add a batch add method to the storage: #84270

โšก Performance & Enhancements (2)

  • [ci] Improve change detection logic in `run-for-change` script: #85619
  • Turbopack: remove the streaming hack for improved stability: #85858

๐Ÿ”ง Bug Fixes & Patches (6)

  • fix: Rspack throw error when using ForceCompleteRuntimePlugin: #85221
  • fix: build CLI output not displaying Proxy (Middleware) when nodejs runtime: #85403
  • fix: staleTimes.static should consistently enforce a 30s minimum: #85479
  • [turbopack] fix build of empty entries of pages: #84873
  • fix: redirect should always return updated router state: #85533
  • [codemod] fix: next-lint-to-eslint-cli did not handle `'next'` plugin: #85749
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### Core Changes - fix: Rspack throw error when using ForceCompleteRuntimePlugin: #85221 - fix: build CLI output not displaying Proxy (Middleware) when nodejs runtime: #85403 - fix: staleTimes.static should consistently enforce a 30s minimum: #85479 - [turbopack] fix build of empty entries of pages: #84873 - Cache the head separately from the route tree: #84724 - Allow inspecting dev server on default port with `next dev --inspect`: #85037 - Avoid proxying React modules through workUnitStore: #85486 - fix: redirect should always return updated router state: #85533 - Upgrade React from `b4455a6e-20251027` to `4f931700-20251029`: #85518 - [turbopack] Move generation of `cacheLife` types out of the webpack plugin and into the dev bundler directly: #85539 - Ensure user-space stack frame for `'use cache'` in page/layout component: #85519 - Update parallel routes in build-complete: #85546 - fully remove clientSegmentCache flag: #85541 - [turbopack] Support relative paths in turbopack source maps.: #85146 - Release unnecessary memory on hydration finish: #84967 - Preserve interception markers in parameter types: #85526 - move segment cache entries to top level segment-cache dir: #85542 - Upgrade React from `4f931700-20251029` to `561ee24d-20251101`: #85670 - [devtools] Remove title from preferences: #85698 - Update font data: #85708 - Don't invalidate hot reloader excessively during dev server boot: #85732 - [codemod] fix: next-lint-to-eslint-cli did not handle `'next'` plugin: #85749 - Upgrade React from `561ee24d-20251101` to `67f7d47a-20251103`: #85762 - Tracing: Fix memory leak in span map: #85529 - Fix documentation typo in refresh function: #85696 - fix: eslint-config-next types was exporting to dist/src: #85768 - Upgrade React from `67f7d47a-20251103` to `f646e8ff-20251104`: #85772 - remove unused RSC payload property: #85746 - [runtime prefetching]: fix runtime prefetching when deployed: #85595 - Turbopack: next build --analyze: #85197 - Build: Log amount of workers during static generation: #85706 - Upgrade React from `f646e8ff-20251104` to `dd048c3b-20251105`: #85819 - Sync devFallbackParams when generateStaticParams change: #85741 - chore: upgrade rspack 1.6.0: #84210 - [mcp] get_routes mcp tool: #85773 - Split each path param into a separate cache key : #85758 - [turbopack] change server source maps in production to use relative paths: #85576 - fix: skip collecting metadata for app-error in webpack: #85892 - fix: support root span attributes with a custom server: #85521 - fix isDynamicRSC condition when deployed: #85919 - [turbopack] Make it possible to synchronously access native bindings: #85787 - Upgrade React from `dd048c3b-20251105` to `fa50caf5-20251107`: #85906 - Fix telemetry event loss on build failures and server shutdown: #85867 - Remove one stack frame from `'use cache'` call stacks: #85966 - Upgrade React from `fa50caf5-20251107` to `52684925-20251110`: #85980 - Deployment adapter: fix metadata for "/" route: #85820 - Enable React's default Transition indicator behind a flag: #86000 - update routes-manifest to include whether app has pages routes: #86051 ### Misc Changes - chore: Add `opt-level = s` for not frequently used crates: #85426 - [test] Deflake cache-components-allow-otel-spans: #85466 - [test] Move remaining `experimental.cacheLife`: #85467 - Turbopack: chore: Remove mopa dependency in turbo-tasks (2nd attempt): #85286 - Update Proxy docs: #85439 - [CNA] Do not prompt for Turbopack: #85404 - Clean up new release process: #85458 - Update E2E tests workflow: #85485 - Update E2E deploy tests manifest: #85483 - docs: example are incorrect async function exports only: #85453 - [test] Handle CLI assertions where no "Compiling..." log is present: #85499 - [test] Speed up refresh test: #85505 - [test] Add test cases for dynamic caches without suspense boundaries: #85500 - docs: Routes are wrapped w/ Activity in Cache Components: #85309 - docs: GET handler behavior under cache components: #85389 - [test] Avoid needless start/stop from using `createSandbox`: #85507 - [test] Use `--debug-build-paths` instead of `NEXT_PRIVATE_APP_PATHS`: #85504 - docs: revalidateTag requires second argument: #85284 - Refactor GTM implementation to support google tag gateway: #81011 - Update Rspack production test manifest: #85494 - Update Rspack development test manifest: #85495 - [docs] Fix a typo: #85492 - [test] Regenerate tsconfig.json files: #85515 - [Turbopack] clean up `completion.rs` a bit: #84863 - [test] Remove `maxRetries` and `hardError` parameters: #85536 - Turbopack: remove the .into() alias to .cell(): #85516 - [test] Consolidate identical snapshots across different bundlers: #85532 - [turbopack] Change where `cell`s are created in `resolve_raw` to make cell allocation order deterministic.: #85525 - Turbopack: Make tasks deterministic: #85524 - [test] Separate act and assertions: #85508 - [test] `assert*` -> `waitFor*` when the util is not instant: #85450 - Turbopack: move whole_app_module_graphs to top level: #84897 - [test] Bail on sending requests to Next.js instance if it's no longer available: #85557 - [test] Deflake tests comparing two random numbers: #85571 - [test] Disallow custom `RegExp`-like implementations in `check`: #85537 - [test] Deflake prerender suite: #85563 - Turbopack: chore: Remove some dead MagicAny serialization code from turbo_tasks::value: #85577 - [test]: fix broken scroll restoration test: #85599 - [test] Deflake nested `after()` tests: #85566 - [test] Stop installing unused dependencies: #85569 - [test] Consider `test/integration/` in flake detection tests: #85590 - Turbopack: more checks on verify_serialization: #84952 - Turbopack: add track_caller to improve panics: #85565 - Turbopack: add verify_determinism feature to check if tasks are deterministic: #85559 - docs: cache life rework: #85224 - Turbopack: fix hanging dev server and builds with fs cache: #85606 - Turbopack: Fix compound assignment expression evaluation (#85478): #85593 - Turbopack: fix Scope holding Arc too long: #85611 - [ci] Improve change detection logic in `run-for-change` script: #85619 - [test] Ignore in deploy tests if a child process isn't available: #85636 - Turbopack: add size_hint and len for Chunk iterator: #85622 - [test]: move resume-data-cache to e2e test: #85647 - Update Rspack development test manifest: #85662 - Update Rspack production test manifest: #85661 - Update Rspack production test manifest: #85688 - Update Rspack development test manifest: #85689 - [test] Deflake root-optional-revalidate: #85584 - docs: fix generateImageMetadata example to use normal params object: #85658 - Turbopack: Upgrade image crate: #85084 - docs: update multi sitemap argumenmt type: #85701 - [test] Move all files to .ts (6/6): #85641 - Turbopack: add a batch add method to the storage: #84270 - docs: recommend reverse-proxy when self-hosting: #85650 - [test] Deflake prefetching.stale-times: #85733 - [test] Deflake custom cache handler test: #85610 - [test] Allow CLI integration test to be retryable: #85586 - docs: update docs to mention ESLint as default: #85740 - docs(next.config): this docs should remove ".mts" is not supported.: #85716 - Turbopack: cleanup StyleSheetLike: #85718 - Turbopack: disable tree shaking for tracing: #85722 - [test] Move all files to .ts (3/6): #85638 - [test] Move all files to .ts (2/6): #85637 - [test] Move all files to .ts (1/6): #85634 - docs: generateSitemap passes id as promise: #85767 - [test] Move all files to .ts (4/6): #85639 - docs: disclosure on path-to-regexp: #85629 - chore: update rspack binding to 1.6.0: #85717 - Turbopack: trace worker_threads worker entry: #85734 - Update Rspack development test manifest: #85761 - Turbopack: chore: Remove `extern crate` and `macro_use` syntax: #85778 - [turbopack] Drop duration and allocation tracking from CaptureFuture: #85534 - Turbopack: chore: Remove dead RouteMatcher stuff: #85784 - docs: fresh up getting started 00: #85736 - Turbopack: chore: Remove the serde_regex dependency, which wasn't very heavily used: #85578 - Turbopack: use batch add in connect children: #85623 - [test] Move all files to .ts (5/6): #85640 - [test] Deflake legacy-link-behavior: #85805 - Resolve request ID confusion: #85809 - Turbopack: use batch add to add initial followers: #85624 - Turbopack: chore: Remove dead experimental.ppr struct field: #85792 - Turbopack: chore: Avoid string clones in Glob::parse by using RcStr: #85579 - Update Rspack production test manifest: #85795 - docs: getting started updates 01: #85750 - chore: Update patricia_tree dependency, remove manual serde impls: #85785 - docs: keywords in system reqs and add browserslist: #85838 - Honour `NEXT_TEST_PREFER_OFFLINE` in `install-native.mjs`: #85850 - Turbopack: chore: Update anyhow, remove old backtrace feature: #85844 - Turbopack: Remove some dead (or useless) code from `next-core/src/next_client_reference/visit_client_reference.rs`: #85843 - sort dependencies for smaller diffs: #82291 - Update Rspack development test manifest: #85846 - Turbopack: Remove `non_operation_vc_strongly_consistent` feature usage from next-api: #85874 - Turbopack: remove the streaming hack for improved stability: #85858 - test: Port clean-distdir integration test to the modern e2e test framework: #85828 - Update font data: #85920 - Update deploy manifest: #85924 - Turbopack: chore: Merge `turbo-tasks-macros-shared` crate into `turbo-tasks-macros`: #85917 - Turbopack: Fix IO concurrency for MacOS: #85861 - Add Appwrite Sites to supported adapters: #85830 - [turbopack] Remove LocalTaskType::Native, it is dead: #85480 - [test] Increase response timeout in `next.browserWithResponse()`: #85911 - Hoist inner `'use cache'` functions to reduce function allocations: #85904 - docs: eslint config update: #85969 - Fix Turbopack local font `font-family` declaration: #85913 - switch to slice in createRuntimePrefetchTransformStream: #85822 - Update authentication.mdx: Fix `Auth0` Link: #85953 - Turbopack: remove unused function: #85974 - docs: cacheHandlers: #85311 - docs: Feedback item on proxy default: #86004 - [test] Add missing test fixtures for `cacheLife` & `cacheTag` in client: #85872 - Fix false-positive build error for `cacheLife` & `cacheTag`: #85875 - [cna] For pnpm ignore postinstall from `sharp` and `unrs-resolver`: #83168 - Turbopack: refactor `evaluate` to take module_graph: #85971 - Turbopack: remove duplicate traversal implementations: #85853 - Omit unused `encryptActionBoundArgs`/`decryptActionBoundArgs` imports: #86015 - Turbopack: cleanup db log and add verbose option: #85965 - [ci]: fix retry_deploy_test workflow: #85981 - Fix typo in documentation: #86054 ### Credits Huge thanks to @kdy1, @eps1lon, @SyMind, @bgw, @swarnava, @devjiwonchoi, @ztanner, @ijjk, @huozhi, @icyJoseph, @acdlite, @unstubbable, @gnoff, @gusfune, @vercel-release-bot, @lukesandberg, @sokra, @hayes, @shuding, @wyattjoh, @marjan-ahmed, @timneutkens, @ajstrongdev, @zigang93, @mischnic, @Nayeem-XTREME, @hamirmahal, @eli0shin, @tessamero, @gaojude, @jamesdaniels, @georgesfarah, and @timeyoutakeit for helping!