unstale

npm / next

next

What changed in next 14 to 16, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

136 breaking68 security13 deprecations119 new APIs and options10 performance86 behavior and defaults42 tooling155 fixes and other

next 16575 changes

Breaking changes 116

Security 52

Deprecations 12

New APIs and options 113

  • Turbopack can be configured with additional filesystem roots.

    16.4.0release notes

  • create-next-app adds a Cache Components option and prompt.

    16.4.0release notes

  • Adds experimental configuration for mozjpeg image optimization.

    16.4.0release notes

  • Turbopack supports experimental.serverMinification, and experimental.turbopackMinify was expanded.

    16.4.0release notes

  • Turbopack import.meta.glob accepts a module type argument.

    16.4.0release notes

  • Adds Instant Insights for prefetch() and navigation().

    16.4.0release notes

  • Adds Instant Insights for prefetch() and navigation().

    16.4.0release notes

  • The loaders API gained a version and a .resolve capability.

    16.4.0release notes

  • A next/cache-handlers types entrypoint was added for cache handler type usage.

    16.4.0release notes

  • Adds an option to preserve React Compiler memoization.

    16.4.0release notes

  • Setting TURBO_PERSISTENCE_MMAP=0 disables mmap for turbo-persistence.

    16.4.0release notes

  • Introduces configuration options for Turbopack garbage collection.

    16.4.0release notes

  • Adds unstable_ensureStatic segment configuration with shell and prefetch modes.

    16.4.0release notes

  • Adds navigation as an ensureStatic level.

    16.4.0release notes

  • An unstable navigation API was introduced for Partial Prefetching workflows.

    16.4.0release notes

  • Adds APIs for matching route parameters.

    16.4.0release notes

  • An unstable prefetch API was introduced for Partial Prefetching workflows.

    16.4.0release notes

  • Webpack loaders receive this.mode.

    16.4.0release notes

  • Webpack loaders receive this.target.

    16.4.0release notes

  • bfcacheId can opt out of state preservation.

    16.3.0release notes

  • Adds an option to control development-server restarts triggered by memory thresholds.

    16.3.0release notes

  • Next.js adds the experimental.appShells feature flag.

    16.3.0release notes

  • An experimental appShells feature flag was added.

    16.3.0release notes

  • Adds experimental chunking heuristics configuration to next.config.js.

    16.3.0release notes

  • Turbopack adds a graph-based CSS chunking algorithm behind experimental.cssChunking.

    16.3.0release notes

  • Adds a flag controlling whether development validation runs in a worker.

    16.3.0release notes

  • Adds experimental React Compiler support in Turbopack.

    16.3.0release notes

  • Next.js adds SWC preset-env configuration through experimental.swcEnvOptions.

    16.3.0release notes

  • Adds the experimental.turbopackChunking configuration option.

    16.3.0release notes

  • Workers can remain same-origin when assetPrefix points to a CDN.

    16.3.0release notes

  • Adds an experimental image optimization operation cache.

    16.3.0release notes

  • Turbopack supports import.meta.env.

    16.3.0release notes

  • Turbopack adds import.meta.glob support for Vite compatibility.

    16.3.0release notes

  • Turbopack supports the caseSensitive option for import.meta.glob.

    16.3.0release notes

  • Webpack loaders can use importModule support under Turbopack.

    16.3.0release notes

  • Adds request timing information to Instant Insights.

    16.3.0release notes

  • The environment variable salts content-hash filenames.

    16.3.0release notes

  • A CLI command compacts the Turbopack database after a build.

    16.3.0release notes

  • The environment variable controls the Turbopack trace output location.

    16.3.0release notes

  • A new environment variable controls the Turbopack trace output location.

    16.3.0release notes

  • Next.js adds the instrumentationClientInject configuration option.

    16.3.0release notes

  • Adapters can override outputHashSalt in modifyConfig.

    16.3.0release notes

  • Adds a global opt-in for Partial Prefetching.

    16.3.0release notes

  • The Turbopack CLI adds filesystem-backed persistent caching.

    16.3.0release notes

  • The project directory is passed to adapter modifyConfig.

    16.3.0release notes

  • robots.ts supports non-standard directives through the other field.

    16.3.0release notes

  • Adds an experimental flag to cancel superseded Server Components HMR requests.

    16.3.0release notes

  • Adds a next.config.js option for serverFastRefresh.

    16.2.2, 16.3.0release notesrelease notes

  • Adds an environment variable for debugging CSS chunking.

    16.3.0release notes

  • Adds an environment variable for debugging CSS chunking.

    16.3.0release notes

  • Routes can configure unstable_prefetch independently from unstable_instant.

    16.3.0release notes

  • The experiment adds a useOffline flag with offline retry behavior.

    16.3.0release notes

  • The experiment adds a useOffline hook exposing offline state to userland.

    16.3.0release notes

  • Turbopack adds LocalPathOrProjectPath PostCSS config resolution.

    16.2.7release notes

  • Adds CPU profiling support to the dev, build, and start commands.

    16.2.0release notes

  • Adds experimental gesture push support to the App Router.

    16.2.0release notes

  • Adds an experimental App Router scroll handler.

    16.2.0release notes

  • Adds an experimental flag for cached navigations and caching visited static pages.

    16.2.0release notes

  • Adds an experimental Turbopack immutable asset token option.

    16.2.0release notes

  • Adds an experimental configuration option for Lightning CSS features.

    16.2.0release notes

  • Adds an experimental option to bundle segment prefetches into a single response.

    16.2.0release notes

  • Adds an experimental Turbopack option to report system environment variable inlining.

    16.2.0release notes

  • Next.js adds a runtime server deployment ID configuration option.

    16.1.0, 16.2.0release notesrelease notes

  • Adds experimental strict route type checking for App Router pages, routes, cache profiles, and Pages Router routes.

    16.2.0release notes

  • Adds an experimental feature flag for vary parameter tracking.

    16.2.0release notes

  • Adds support for custom image cache handlers.

    16.2.0release notes

  • Adds a configuration limit for the maximum image response body size.

    16.2.0release notes

  • Allows Node.js experimental inspector flags when running next build.

    16.2.0release notes

  • Adds the NEXT_DEPLOYMENT_ID global for deployment identification.

    16.2.0release notes

  • Allows Node.js experimental inspector flags when running next dev.

    16.2.0release notes

  • Allows inspecting the server started by next start.

    16.2.0release notes

  • Adds the transitionTypes prop to next/link.

    16.2.0release notes

  • Adds component-level error recovery through unstable_catchError in error.js.

    16.2.0release notes

  • Adds an unstable route segment configuration for dynamic stale time.

    16.2.0release notes

  • Adds unstable_retry() to error.js for retrying error states.

    16.2.0release notes

  • Turbopack adds an input source maps option and respects serverSourceMaps.

    16.1.0release notes

  • An MCP tool named get_routes is added for retrieving routes.

    16.0.3, 16.1.0release notesrelease notes

  • Turbopack adds support for analyzing builds with next build --analyze.

    16.0.3, 16.1.0release notesrelease notes

  • The dev server can be inspected on its default port with the --inspect option.

    16.0.3, 16.1.0release notesrelease notes

  • This environment variable enables writing route hashes into the manifest.

    16.1.0release notes

  • Next.js adds a next upgrade command, including fallback to npx when yarn dlx is unavailable.

    16.1.0release notes

  • Appwrite Sites is added to the supported adapters.

    16.0.3release notes

  • React 19.2 adds Activity for hiding background UI while preserving state and cleaning up effects.

    16.0.0upgrade guide

  • Call before reading process.env when environment variables must be evaluated at runtime rather than bundled during build.

    16.0.0upgrade guideupgrade guide

  • create-next-app adds a webpack flag and applies it when users choose webpack or decline Turbopack.

    16.0.0release notes

  • Adding data-scroll-behavior="smooth" restores the previous scroll override during navigation.

    16.0.0upgrade guide

  • Turbopack adds the debugIds configuration option.

    16.0.0upgrade guideupgrade guide

  • The native TypeScript resolver for Next.js configuration requires an explicit experimental flag.

    16.0.0release notes

  • The alpha Build Adapters API adds experimental.adapterPath for custom build-process adapters.

    16.0.0upgrade guideupgrade guideupgrade guide

  • The Next.js development MCP server adds a get_errors endpoint.

    16.0.0release notes

  • The Next.js development MCP server adds a get_page_metadata endpoint.

    16.0.0release notes

  • Next Image adds an option controlling whether local IP addresses may be loaded.

    16.0.0release notes

  • Next Image adds a maximum redirect limit for image loading.

    16.0.0release notes

  • The Next.js development server includes an MCP server, enabled by default.

    16.0.0release notes

  • The next/cache module adds a refresh API.

    16.0.0release notes

  • Turbopack implements the declarations option for next/font/local.

    16.0.0release notes

  • Adds the next-rspack-binding package for Rspack integration.

    16.0.0release notes

  • Next.js configuration can use the .mts extension with Node.js native TypeScript resolution.

    16.0.0release notes

  • The recommended named export for the renamed routing file is proxy.

    16.0.0upgrade guide

  • Proxy replaces the deprecated Middleware file convention, with a codemod available for migration.

    16.0.0release notesupgrade guideupgrade guideupgrade guide

  • The renamed proxy.ts file is the recommended replacement for middleware.ts.

    16.0.0upgrade guide

  • The App Router uses React 19.2 features including View Transitions, useEffectEvent, and Activity.

    16.0.0upgrade guide

  • Next.js adds a configuration option for enabling React Compiler integration, which is stable.

    16.0.0release notesupgrade guideupgrade guideupgrade guide

  • The redirects configuration can be defined as a synchronous function.

    16.0.0release notes

  • Allows refreshing the client router from within a Server Action after performing an action.

    16.0.0upgrade guideupgrade guide

  • The rewrites configuration can be defined as a synchronous function.

    16.0.0release notes

  • Generated globally available RouteContext types help migrate route handlers to async params with type safety.

    16.0.0upgrade guide

  • Turbopack provides resolveAlias for mapping imports such as browser requests for Node.js modules.

    16.0.0upgrade guide

  • Turbopack provides resolveAlias for browser-side aliases such as mapping Node.js modules to empty modules.

    16.0.0upgrade guideupgrade guide

  • updateTag provides Server Actions with read-your-writes cache expiration and immediate refresh semantics.

    16.0.0upgrade guideupgrade guide

  • React 19.2 adds useEffectEvent for extracting non-reactive effect logic into reusable Effect Event functions.

    16.0.0upgrade guide

  • React 19.2 adds View Transitions for animating elements updated inside a transition or navigation.

    16.0.0upgrade guide

  • The --webpack flag opts out of the default Turbopack build and uses Webpack.

    16.0.0release notesupgrade guideupgrade guideupgrade guide

Performance 9

  • Dynamic imports are compiled lazily in development on the client and for SSR.

    16.4.0release notes

  • App Shells are prefetched on the client and used in runtime prefetches to improve navigation performance.

    16.3.0release notes

  • Cached misses can now be served from the filesystem route cache.

    16.3.0release notes

  • Hot module replacement avoids quadratic queue shifts, improving development update performance.

    16.3.0release notes

  • Turbopack uses file sourcemaps to improve development performance.

    16.3.0release notes

  • Turbopack no longer emits a polyfill chunk for API routes.

    16.2.0release notes

  • A single Node.js instance is pre-warmed when the development server starts, improving development startup behavior.

    16.2.0release notes

  • Turbopack enables mimalloc on musl-based Linux distributions, fixing a significant allocator-related performance issue.

    16.1.2release notes

  • Prefetching multiple URLs with a shared layout downloads the layout once.

    16.0.0upgrade guideupgrade guide

Behavior and default changes 85

  • Adapter route collapses are enabled by default.

    16.4.0release notes

  • New create-next-app projects enable Cache Components by default.

    16.4.0release notes

  • Draft Mode is allowed on unlisted closed routes in adapter deployments.

    16.4.0release notes

  • Durable use-cache entries now work with client components.

    16.4.0release notes

  • Turbopack shared runtime is enabled by default.

    16.4.0release notes

  • Turbopack export name mangling is enabled by default for builds.

    16.4.0release notes

  • The stabilization of forbidden was reverted, so its stabilized status no longer applies.

    16.4.0release notes

  • The next analyze command is promoted.

    16.4.0release notes

  • Static exports support immutable static assets when output is set to export.

    16.4.0release notes

  • Turbopack resolveAlias configuration now supports false values.

    16.4.0release notes

  • The shared Turbopack runtime is enabled by default on canary builds.

    16.4.0release notes

  • TURBOPACK_PRINT_CHUNK_GROUPS is available in release builds.

    16.4.0release notes

  • Turbopack enables export mangling by default in production builds to reduce bundle sizes.

    16.4.0release notes

  • Turbopack resolves imports rooted at / from the project directory.

    16.4.0release notes

  • The stabilization of unauthorized was reverted, so its stabilized status no longer applies.

    16.4.0release notes

  • web-vitals was upgraded to v6 and soft navigations are reported.

    16.4.0release notes

  • Export validation is now limited to files inside the app directory.

    16.3.2release notes

  • Only cache entries predating tag revalidation are discarded, and completed entries are reused.

    16.3.1release notes

  • Retains fewer stale cache versions and uses a TTL, with an mtime fallback.

    16.3.1release notes

  • The allow-runtime behavior is unified with Partial Prefetching.

    16.3.0release notes

  • cacheLife profiles are now type-resolved, removing runtime assertions.

    16.3.0release notes

  • Skips interactive prompts when CLI flags are provided, making flagged project creation non-interactive.

    16.2.2, 16.3.0release notesrelease notes

  • App Shells are enabled by default when Cache Components is enabled.

    16.3.0release notes

  • experimental.cachedNavigations is enabled by default with cacheComponents.

    16.3.0release notes

  • experimental.cachedNavigations is enabled by default when cacheComponents is enabled.

    16.3.0release notes

  • experimental.optimisticRouting is enabled by default.

    16.3.0release notes

  • experimental.optimisticRouting is enabled by default.

    16.3.0release notes

  • The Turbopack filesystem cache for builds is enabled by default in non-stable releases.

    16.3.0release notes

  • experimental.varyParams is enabled by default.

    16.3.0release notes

  • experimental.varyParams is enabled by default.

    16.3.0release notes

  • The new fragment scroll handler is enabled by default.

    16.3.0release notes

  • Turbopack enables import with { type: 'text' } by default.

    16.3.0release notes

  • Metadata image routes are statically prerendered under Cache Components.

    16.3.0release notes

  • Instant navigation validation is enabled by default.

    16.3.0release notes

  • next build applies sourcemaps by default during prerender.

    16.3.0release notes

  • Node streams are enabled by default.

    16.3.0release notes

  • outputHashSalt moved out of experimental configuration.

    16.3.0release notes

  • Partial fallback shell upgrades for next start are gated behind partialPrefetching.

    16.3.0release notes

  • The export const prefetch API is stabilized.

    16.3.0release notes

  • Prefetching attempts a static prefetch before falling back to runtime behavior.

    16.3.0release notes

  • Request Insights display settings are persisted.

    16.3.0release notes

  • The retry API is stabilized by removing its unstable prefix.

    16.3.0release notes

  • Root params support is enabled by default.

    16.3.0release notes

  • Client-handled Server Action redirects now return HTTP 200.

    16.3.0release notes

  • Disables supportsImmutableAssets when config.output is used.

    16.3.0release notes

  • The Turbopack build filesystem cache is enabled by default.

    16.0.0, 16.3.0release notesupgrade guide

  • The TypeScript CLI is enabled by default.

    16.3.0release notes

  • The unstable_instant API is stabilized.

    16.3.0release notes

  • The unstable_io API is stabilized and its guarding flag is removed.

    16.3.0release notes

  • The next@latest dist-tag points to this stable release, affecting which version is resolved when installing or updating the package.

    16.2.9release notes

  • Includes the deployment id in cacheHandlers keys.

    16.2.5release notesrelease notes

  • Allows boolean and number primitives in next.config defines.

    16.2.4release notes

  • adapterPath moves from experimental configuration to the stable top-level configuration.

    16.2.0release notes

  • Enables the experimental React debug channel by default.

    16.2.0release notes

  • Server Function logging is available through logging.serverFunctions and remains enabled by default.

    16.2.0release notes

  • Allows reset() to be called from a user-defined global-error component.

    16.2.0release notes

  • Prefetch completion always performs an upsert.

    16.2.0release notes

  • Server actions now limit the number of arguments to 1000.

    16.2.0release notes

  • Server HMR is enabled by default for App Router pages.

    16.2.0release notes

  • Unknown CSS selectors are reported as warnings.

    16.2.0release notes

  • Functions using use cache can access root params.

    16.2.0release notes

  • Route handlers now apply the server actions transform to modules in node_modules.

    16.1.7release notes

  • The response cache now uses an LRU cache scoped by invocation ID in minimal mode.

    15.5.11, 16.1.6release notesrelease notes

  • Running the bundle analyzer web server is now the default.

    16.1.0release notes

  • The turbopackInferModuleSideEffects flag is enabled only in canary builds.

    16.1.0release notes

  • Turbopack filesystem caching is enabled by default for development.

    16.1.0release notes

  • Rspack persistent caching is enabled by default.

    16.1.0release notes

  • The React version in create-next-app templates was updated.

    16.0.8release notes

  • Production Turbopack server source maps now use relative paths.

    16.0.3release notes

  • The Segment Cache fallback implementation was generalized.

    16.0.1release notes

  • Cache Components becomes a stable top-level configuration option.

    16.0.0release notesupgrade guideupgrade guide

  • The default cache handler uses the cacheMaxMemorySize configuration.

    16.0.0release notes

  • Turbopack filesystem caching is enabled by default for next build.

    16.0.0upgrade guideupgrade guide

  • Turbopack filesystem caching is enabled by default for next dev.

    16.0.0upgrade guideupgrade guide

  • The headers configuration can be defined as a synchronous function.

    16.0.0release notes

  • Next.js prefetches only parts not already in cache instead of entire pages.

    16.0.0upgrade guideupgrade guide

  • next build now uses Turbopack by default, replacing the previous default build behavior.

    16.0.0upgrade guide

  • next dev now writes to a separate .next/dev output directory, enabling concurrent dev and build execution.

    16.0.0upgrade guideupgrade guideupgrade guide

  • next dev now uses Turbopack by default, so the --turbopack or --turbo flag is no longer needed.

    16.0.0upgrade guide

  • Turbopack becomes the default bundler, with a webpack opt-out flag.

    16.0.0release notesupgrade guideupgrade guide

  • Turbopack configuration moves from experimental.turbopack to the top-level turbopack option.

    16.0.0upgrade guide

  • Create Next App no longer needs to explicitly pass --turbopack because Turbopack is the default bundler.

    16.0.0release notes

  • Filesystem caching is enabled by default for next dev to preserve compiler artifacts between runs.

    16.0.0upgrade guide

  • The unstable_ prefix is removed from the cacheLife API, while the unstable prefix remains accepted for compatibility.

    16.0.0release notesupgrade guideupgrade guide

  • The unstable_ prefix is removed from the cacheTag API, while the unstable prefix remains accepted for compatibility.

    16.0.0release notesupgrade guideupgrade guide

Tooling 41

  • A bundle analyzer skill was added for analyzing application bundles.

    16.4.0release notes

  • Each analyze run records a historical snapshot for later comparison.

    16.4.0release notes

  • Next.js codemods transform .mjs files.

    16.4.0release notes

  • eslint-config-next supports ESLint 10.

    16.4.0release notes

  • The skill was renamed to next-bundle-optimizer and its usage was documented.

    16.4.0release notes

  • Bundler configuration validation is skipped in next/jest and under test.

    16.4.0release notes

  • Development validation runs on a worker thread when using Cache Components.

    16.3.0release notes

  • Adds pipeline spans to Instant Insights.

    16.3.0release notes

  • Startup hints and help examples now include the port option.

    16.3.0release notes

  • A CLI command was added to inspect static route information.

    16.3.0release notes

  • The Turbopack tracing command uses next internal trace with the trace output path.

    16.0.0, 16.3.0upgrade guiderelease notesupgrade guide

  • A CLI command was added for uploading traces.

    16.3.0release notes

  • The ESLint rule no-location-assign-relative-destination has been enhanced.

    16.3.0release notes

  • Adds local span tracing for Request Insights.

    16.3.0release notes

  • Turbopack enables server HMR for app route handlers, improving development feedback for route changes.

    16.2.2, 16.3.0release notesrelease notes

  • Adds Turbopack resolution support for LocalPathOrProjectPath PostCSS configurations.

    16.2.7release notes

  • Adds an agents-md codemod command for AI coding agents.

    16.2.0release notes

  • create-next-app now generates AGENTS.md with bundled Next.js documentation.

    16.2.0release notes

  • Adds route filtering and negation pattern support to debug-build-paths.

    16.2.0release notes

  • Adds server HMR infrastructure and runtime support to Turbopack development.

    16.2.0release notes

  • The @next/playwright package is published to npm as part of canary releases.

    16.2.0release notes

  • Turbopack can resolve TypeScript files used in Tailwind configuration.

    16.2.0release notes

  • Recognizes @typescript/native-preview as an alternative TypeScript compiler.

    16.2.0release notes

  • The Turbopack TypeScript transform now supports verbatimModuleSyntax.

    16.2.0release notes

  • The bundle analyzer now shows compressed sizes, helping developers evaluate output size more accurately.

    16.1.0release notes

  • Next.js introduces a built-in bundle analyzer for Turbopack.

    16.1.0release notes

  • The experimental bundle analyzer gains a bundle analyzer UI.

    16.1.0release notes

  • Turbopack source maps now support relative paths.

    16.0.3release notes

  • Enabling the React Compiler requires installing the React Compiler Babel plugin.

    16.0.0upgrade guideupgrade guide

  • The default create-next-app template now includes ESLint.

    16.0.0release notes

  • Create Next App templates use ESLint Flat config.

    16.0.0release notes

  • ESLint is added to the default Create Next App template.

    16.0.0release notes

  • Generated globally available LayoutProps types help migrate to async params with type safety.

    16.0.0upgrade guide

  • A migration codemod updates synchronous params, searchParams, cookies(), headers(), and draftMode() access to async APIs.

    16.0.0upgrade guide

  • The upgrade codemod updates Turbopack configuration, linting, middleware conventions, stabilized API names, and experimental PPR settings.

    16.0.0upgrade guide

  • A lockfile prevents multiple next dev or next build instances from running on the same project.

    16.0.0upgrade guideupgrade guideupgrade guide

  • The upgrade CLI prepares migration guides and codemod instructions for a coding agent.

    16.0.0upgrade guideupgrade guide

  • Generated globally available PageProps types help migrate to async params and searchParams with type safety.

    16.0.0upgrade guide

  • The Sass loader supports modern Sass syntax and new features.

    16.0.0upgrade guideupgrade guideupgrade guide

  • The Next.js development MCP server exposes a server action tool.

    16.0.0release notes

  • Turbopack adds support for the Webpack loader this.fs.readFile API.

    16.0.0release notes

Fixes and other changes 147

  • Turbopack fixes chunk-list collisions for lazy dynamic imports.

    16.4.2release notes

  • Turbopack now ignores realpath errors during module resolution, matching Node.js behavior.

    16.4.2release notes

  • Repeated tag revalidation triggered from after() is propagated.

    16.4.0release notes

  • Client params no longer suspend on shallow URL updates.

    16.4.0release notes

  • Static export now preserves configured output directories.

    16.4.0release notes

  • Custom cache handlers are available on initial requests.

    16.4.0release notes

  • An explicitly configured generateBuildId is always used.

    16.4.0release notes

  • HTTP status codes are preserved during prerendering.

    16.4.0release notes

  • Turbopack resolves ../ and root-based import.meta.glob patterns correctly.

    16.4.0release notes

  • Metadata rendering remains stable across streaming modes and respects Edge SSR streaming policy.

    16.4.0release notes

  • Internal image responses no longer share the requester's socket.

    16.4.0release notes

  • The upgrade codemod honors non-interactive mode in its prompts.

    16.4.0release notes

  • Per-segment prefetching is preserved after dynamic navigation.

    16.4.0release notes

  • Proxy files are detected correctly when pageExtensions contains compound extensions.

    16.4.0release notes

  • revalidateTag now reaches custom cache handlers when profiles differ.

    16.4.0release notes

  • Server Actions are handled on dynamic PPR fallback routes.

    16.4.0release notes

  • Server Actions no longer hang after navigation to PPR pages.

    16.4.0release notes

  • Static metadata prerendering is restored for dynamic routes.

    16.4.0release notes

  • URL updates no longer trigger an unnecessary Suspense fallback.

    16.4.0release notes

  • Development invalidation no longer over- or under-invalidates use cache entries.

    16.4.0release notes

  • Fixes strongly consistent reads hanging when a task is canceled.

    16.3.7release notes

  • Skips 0-byte entries when initializing the disk LRU cache.

    16.3.5release notes

  • Rejects empty images when reading from or writing to the disk cache.

    16.3.5release notes

  • Emits whole-app server NFTs when standalone output is used with an adapter.

    16.3.5release notes

  • Fixes prerender signal retention for the use cache directive.

    16.3.5release notes

  • AVIF Image Optimization is re-enabled for developers using Next.js 16.3.4.

    16.3.4release notes

  • Fixes crossOrigin being unset in Turbopack manifests.

    16.3.4release notes

  • Fixes infinite recursion in testmode passthrough fetch behavior.

    16.3.4release notes

  • Fixes a build error when TypeScript is aliased to @typescript/typescript6.

    16.3.4release notes

  • Fixes Turbopack worker chunk loading when an asset prefix is configured.

    16.3.2release notes

  • Fixes catch-all index pages from being served for every other slug.

    16.3.2release notes

  • The prior i18n localization change for dynamic Pages API routes is reverted.

    16.3.1release notes

  • Reverts an i18n localization change for dynamic Pages API routes.

    16.3.1release notes

  • headers() again provides a live view of the incoming request.

    16.3.1release notes

  • Hot module reloading works for dynamic imports evaluated from layouts.

    16.3.1release notes

  • Image responses are preserved after optimization.

    16.3.1release notes

  • Optimistic routing bugs that caused repeated prefetch loops are fixed.

    16.3.1release notes

  • Missing styled-jsx styles in Pages Router SSR on adapter builds are fixed.

    16.3.1release notes

  • Cache item names generated by unstable_cache are encoded.

    16.3.1release notes

  • Files using the use cache directive can export literals.

    16.3.1release notes

  • Fixes callbacks running after the response has ended and request APIs used in promises passed to after.

    16.3.0release notes

  • Redirect destinations preserve basePath.

    16.3.0release notes

  • Redirect destinations preserve basePath.

    16.3.0release notes

  • Cache handler names are validated correctly.

    16.3.0release notes

  • cacheHandlers names are validated correctly.

    16.3.0release notes

  • expire values are normalized and validated, including Infinity, so configuration mistakes surface earlier.

    16.3.0release notes

  • fetch respects HTTP Cache-Control headers when using TTL-based invalidation.

    16.3.0release notes

  • Fetch cache keys are byte-exact for binary request bodies.

    16.3.0release notes

  • fetch(Request, init) is keyed by the effective request, and binary request bodies use byte-exact cache keys.

    16.3.0release notes

  • Fetch cache keys now use the effective request when fetch receives a Request and init.

    16.3.0release notes

  • Ensures headers() resolves to a unique value between render passes.

    16.3.0release notes

  • Cache Components now respects htmlLimitedBots without buffering the full response.

    16.3.0release notes

  • Local fonts now work in statically prerendered ImageResponse metadata routes.

    16.3.0release notes

  • images.maximumResponseBody now applies to local images as well as remote images.

    16.3.0release notes

  • Instant Navigation Testing now supports full-page loads when deployed.

    16.3.0release notes

  • Instrumentation is awaited in RouteModule.prepare and middleware instrumentation is awaited correctly with adapters.

    16.3.0release notes

  • Middleware rewrite query parameters are preserved in Pages API routes.

    16.3.0release notes

  • The development server restarts if the .next directory is deleted.

    16.3.0release notes

  • Server-side asset hashes now respect NEXT_HASH_SALT.

    16.3.0release notes

  • Response-based OpenTelemetry attributes are now set properly when using adapters.

    16.3.0release notes

  • revalidate values are normalized and validated, including Infinity, so configuration mistakes surface earlier.

    16.3.0release notes

  • optimizePackageImports now respects the sideEffects field in package.json.

    16.3.0release notes

  • Fixes add support for TypeScript 7, allowing Next.js projects to use that TypeScript release.

    16.2.12release notes

  • The package was published after being accidentally omitted since 16.2.4, making it available for developers to use.

    16.2.10release notes

  • A no-change release attempted to fix next@latest pointing at a prerelease version.

    16.2.8release notes

  • Propagates adapter preferred regions so regional deployment preferences are preserved.

    16.2.7release notes

  • Ensures non-ASCII characters in cache tags are encoded when tags are constructed.

    16.2.7release notes

  • Fixes hydration failures when a page is served from the HTTP cache during development.

    16.2.7release notes

  • FormData entries are no longer dropped, preserving submitted form data.

    15.5.19, 16.2.7release notesrelease notes

  • Prevents catch-all router.query corruption when basePath and rewrites are used together.

    16.2.7release notes

  • Fixes a forwarding loop for server actions when middleware rewrites are applied.

    16.2.7release notes

  • Fixes handling of type: module in the project directory when using standalone output or adapters.

    16.2.7release notes

  • Double-encoding of URL pathname parts during client parameter parsing was corrected.

    16.2.6release notes

  • Fixes double-encoding of URL pathname parts during client parameter parsing.

    16.2.5release notesrelease notes

  • Fixes the fallback route params case in the app-page handler.

    16.2.5release notesrelease notes

  • Preserves HTTP access fallbacks during prerender recovery.

    16.2.5release notesrelease notes

  • Fixes invalid HTML responses for route-level RSC requests in the deployment adapter.

    16.2.5release notesrelease notes

  • Patches setHeader for direct route handlers.

    16.2.5release notesrelease notes

  • Fixes the filesystem watcher configuration so follow_symlinks(false) is applied.

    16.2.4release notes

  • Fixes Google Fonts with Turbopack for Windows on ARM64.

    16.2.4release notes

  • Scopes the Safari cache-buster to CSS and font assets in the Pages Router.

    16.2.4release notes

  • Content conflicts are detected when output assets are emitted.

    16.2.3release notes

  • Fixes an issue where manifest.ts breaks HMR.

    16.2.3release notes

  • Stale ISR revalidation errors are now reported via onRequestError.

    16.2.3release notes

  • Output assets are deduplicated during emission.

    16.2.3release notes

  • Fixes a race condition that could cause styles to be lost during concurrent rendering.

    16.2.3release notes

  • Fixes CSS HMR on Safari.

    16.2.2release notes

  • Turbopack excludes metadata routes from server HMR.

    16.2.2release notes

  • Adapter outputs for dynamic metadata routes were fixed.

    16.2.1release notes

  • Server actions now work correctly in standalone mode when cacheComponents is enabled.

    16.2.1release notes

  • The webpack loader runner layer was fixed for Turbopack builds.

    16.2.1release notes

  • Metadata lazy requiring and top-level await handling were fixed in Turbopack.

    16.2.1release notes

  • Turbopack now respects eval: true in worker_threads constructors.

    16.2.1release notes

  • Turbopack now respects eval: true in worker_threads constructors.

    16.2.1release notes

  • Handling of allowed development origins is fixed for no-cors requests.

    16.2.0release notes

  • Errors related to allowed development origins are improved.

    16.2.0release notes

  • Cache life and tag propagation is corrected for cache handler hits.

    16.2.0release notes

  • Strict route type validation no longer rejects numeric body parser size limits.

    16.2.0release notes

  • CSS parse error recovery and reporting are improved.

    16.2.0release notes

  • Data URL CSS is no longer rejected by the Pages Router global CSS restriction.

    16.2.0release notes

  • Supports TypeScript noUncheckedSideEffectImports when importing CSS.

    16.2.0release notes

  • The monorepo root search now handles pnpm workspace files.

    16.2.0release notes

  • React Server Components error messages are improved.

    16.2.0release notes

  • Type inference for fallback props is fixed.

    16.2.0release notes

  • Streaming fetch calls no longer hang during development with Cache Components.

    16.1.7release notes

  • Next config is filtered only when the experimental flag is enabled.

    16.1.4release notes

  • Fixes a linked-list bug when removing entries from the LRU cache.

    16.1.3release notes

  • Fixes relative same-host redirects in Node.js middleware.

    16.1.3release notes

  • Turbopack no longer crashes when processing MDX files containing multibyte characters.

    16.1.2release notes

  • Creates junction points instead of symlinks on Windows.

    16.1.1release notes

  • Fixes flashes and stuck empty canvases when resizing the bundle analyzer.

    16.1.0release notes

  • The bundle analyzer no longer flashes or leaves canvases stuck empty when resized.

    16.1.0release notes

  • Setting cacheMaxMemorySize no longer disables the development HMR cache.

    16.1.0release notes

  • NFT output now uses middleware.js instead of proxy.js.

    16.0.4, 16.1.0release notesrelease notes

  • Local images without static imports and sources without protocols now correctly handle the ?dpl query string.

    16.1.0release notes

  • The codemod now correctly handles the next ESLint plugin.

    16.0.3, 16.1.0release notesrelease notes

  • Static types now correctly reflect the runtime type of resHeaders.

    16.1.0release notes

  • Object and array literals can again be exported from use cache files.

    16.1.0release notes

  • The useSearchParams constructor can now be imported for instanceof checks.

    16.1.0release notes

  • The useSearchParams constructor can now be imported for instanceof checks.

    16.1.0release notes

  • Body cloning in Node.js middleware is properly finalized by awaiting it.

    16.0.5release notes

  • Fetch abort errors no longer propagate to user error boundaries.

    16.0.4release notes

  • Project options are now passed correctly from napi to Turbopack.

    16.0.4release notes

  • False-positive build errors involving cacheLife and cacheTag are fixed.

    16.0.3release notes

  • False-positive build errors involving cacheLife in client code are fixed.

    16.0.3release notes

  • False-positive build errors involving cacheTag in client code are fixed.

    16.0.3release notes

  • Deployment adapter metadata for the root route is fixed.

    16.0.3release notes

  • Turbopack fixes the font-family declaration generated for local fonts.

    16.0.3release notes

  • Turbopack fixes the font-family declaration for local fonts.

    16.0.3release notes

  • The development fallback parameters are synchronized when generateStaticParams changes.

    16.0.3release notes

  • getServerInsertedHTML now skips rendering correctly.

    16.0.1release notes

  • The next-js condition is excluded from middleware, proxy, and instrumentation.

    16.0.1release notes

  • The package's type definitions were corrected.

    16.0.1release notes

  • Duplicate include entries are no longer generated on Windows.

    16.0.1release notes

  • Requests with Origin: null headers are handled correctly.

    16.0.1release notes

  • Parallel route parameter resolution now tracks depth correctly for static paths.

    16.0.1release notes

  • prefetch={true} functionality was restored.

    16.0.1release notes

  • The proxy file is picked up correctly on Windows.

    16.0.1release notes

  • req.query is writable.

    16.0.1release notes

  • Turbopack correctly traces files referenced with npm.

    16.0.1release notes

  • Components using useActionQueue no longer crash when suspending.

    16.0.1release notes

  • Coding agents can use version-matched Next.js documentation referenced from AGENTS.md during upgrades.

    16.0.0upgrade guideupgrade guide

  • Turbopack fixes precedence handling for the pageExtensions configuration.

    16.0.0release notes

  • TURBOPACK may now be undefined without causing a failure.

    16.0.0release notes

  • The TURBOPACK environment value may now be undefined without causing a failure.

    16.0.0release notes

  • Misspelling the 'use cache' directive now produces a build error.

    16.0.0release notes

  • withRspack becomes idempotent, allowing repeated application without changing the result.

    16.0.0release notes

next 1553 changes

Breaking changes 20

  • Next.js now rejects TypeScript versions 7.0 and later with an actionable error.

    15.5.22release notes

  • Turbopack no longer defines process.cwd() in node_modules, changing how dependencies access the current working directory.

    15.5.6release notes

  • Automatic Speed Insights instrumentation was removed; applications must add an explicit integration if they still need it.

    15.0.0upgrade guideupgrade guide

  • The stable bundlePagesRouterDependencies option replaces experimental.bundlePagesExternals.

    15.0.0upgrade guideupgrade guide

  • Page segments are no longer reused during Link or useRouter navigation, but remain reused for back-forward navigation and shared layouts.

    15.0.0upgrade guide

  • cookies is now asynchronous and must be awaited for recommended usage.

    15.0.0upgrade guide

  • draftMode is now asynchronous and must be awaited for recommended usage.

    15.0.0upgrade guide

  • fetch requests are no longer cached by default; use cache: 'force-cache' to opt in.

    15.0.0upgrade guide

  • The geo property was removed from NextRequest because hosting providers supply geolocation values.

    15.0.0upgrade guideupgrade guide

  • GET functions in Route Handlers are no longer cached by default.

    15.0.0upgrade guide

  • headers is now asynchronous and must be awaited for recommended usage.

    15.0.0upgrade guide

  • The ip property was removed from NextRequest because hosting providers supply IP values.

    15.0.0upgrade guideupgrade guide

  • The @next/font package was removed; imports must use the built-in next/font instead.

    15.0.0upgrade guideupgrade guide

  • Font imports move from @next/font to the built-in next/font API.

    15.0.0upgrade guide

  • params is now asynchronous in layouts, pages, route handlers, and related metadata files.

    15.0.0upgrade guide

  • The minimum React DOM version is now 19.

    15.0.0upgrade guide

  • The minimum React version is now 19.

    15.0.0upgrade guide

  • The experimental-edge runtime value now errors; use edge instead.

    15.0.0upgrade guide

  • useActionState replaces useFormState and provides direct access to pending state.

    15.0.0upgrade guide

  • useFormState is deprecated and has been replaced by useActionState.

    15.0.0upgrade guide

Security 15

  • Additional security hardening was added to next/og.

    15.5.26release notes

  • This release includes a security patch; consult the Next.js Security Update for details.

    15.5.9release notes

  • A security patch was released; the changelog contains more information about the issue.

    15.4.11release notes

  • This release includes a security patch; see the Next.js Security Update for details.

    15.4.10release notes

  • This release includes a security patch; the notes refer developers to the CVE-2026-23864 changelog for details.

    15.3.9release notes

  • This release contains a security patch; consult the Next.js Security Update for details.

    15.3.8release notes

  • This release includes security changes; see the linked CVE for additional details.

    15.3.6release notes

  • Applies a security patch addressing CVE-2026-23864.

    15.2.9release notes

  • A security patch is available; consult the Next.js Security Update for details.

    15.2.8release notes

  • A security patch was released; see the linked changelog for details about CVE-2026-23864.

    15.1.12release notes

  • This release contains a security patch; consult the Next.js Security Update for details.

    15.1.11release notes

  • A crafted request could expose compiled source code from Server Functions, potentially revealing business logic and embedded secrets.

    15.1.11release notes

  • A security patch was released; see the linked changelog for more information.

    15.0.8release notes

  • This release contains a security patch; see the Next.js Security Update for details.

    15.0.7release notes

  • The vulnerable RSC protocol was hardened to prevent remote code execution from attacker-controlled requests in App Router applications.

    15.0.5release notes

Deprecations 1

  • useFormState is deprecated in React 19 and will be removed in a future release.

    15.0.0upgrade guide

New APIs and options 6

  • staleTimes opts page segments into client caching with dynamic and static durations.

    15.0.0upgrade guide

  • fetchCache can opt all fetch requests in a layout or page into caching.

    15.0.0upgrade guide

  • The upgrade codemod can retry with --skip-eslint-upgrade to preserve repaired ESLint dependencies.

    15.0.0upgrade guide

  • The upgrade codemod can retry with --skip-react-upgrade to preserve repaired React dependencies.

    15.0.0upgrade guide

  • useActionState replaces useFormState and provides additional properties such as direct access to pending state.

    15.0.0upgrade guide

  • useFormStatus now exposes data, method, and action in React 19.

    15.0.0upgrade guideupgrade guide

Performance 1

  • Turbopack validates CSS without computing all paths.

    15.5.11release notes

Behavior and default changes 1

Tooling 1

  • Turbopack now supports patterns in the exports field.

    15.5.11release notes

Fixes and other changes 8

  • AVIF Image Optimization is re-enabled when newer versions of sharp are installed.

    15.5.25release notes

  • The package was published after being accidentally unavailable since 15.5.15.

    15.5.20release notes

  • Restores Content-Length and ETag for /_next/data/ JSON responses.

    15.5.14release notes

  • LRU cache items now have a minimum size of 1, preventing unbounded growth.

    15.5.11release notes

  • Fixes NFT tracing behavior in additional cases.

    15.5.11release notes

  • Fixes Turbopack NFT tracing for sharp 0.34.

    15.5.11release notes

  • Fixes a memory leak in the span map.

    15.5.11release notes

  • The Pages Router supports React 18 and React 19, making the React 19 upgrade optional for Pages Router applications.

    15.0.0upgrade guide

next 141 changes

Security 1

  • A security patch was released; see the linked Next.js Security Update for details.

    14.2.35release notes