next breaking changes

npm

7 curated breaking changes across major versions of next. Use this as a migration checklist before bumping dependencies.

7
changes
Breaking changes by transition
  • 15 \u2192 16api

    React Compiler stable (when enabled via experimental flag in 15, stable in 16).

    Migration

    Enable via `experimental.reactCompiler = true` in next.config.js. Reduces manual useMemo/useCallback.

  • 15 \u2192 16build

    Turbopack is the default dev bundler. Webpack dev path still available via `--webpack`.

    Migration

    If you have custom webpack config for dev, either migrate to Turbopack rules or run `next dev --webpack`.

  • 14 \u2192 15api

    params and searchParams in pages/layouts/route handlers are now Promises and must be awaited.

    Migration

    `export default async function Page({ params }) { const { id } = await params; }`. Use the `next-codemod` codemod `next-async-request-api`.

  • 14 \u2192 15behavior

    fetch() is no longer cached by default in Route Handlers and Server Components. Opt-in via `cache: 'force-cache'` or `export const fetchCache = 'default-cache'`.

    Migration

    Audit fetches you relied on being cached. Explicit opt-in: `fetch(url, { cache: 'force-cache' })` or set `export const dynamic = 'force-static'`.

  • 14 \u2192 15behavior

    GET Route Handlers are no longer cached by default. Client Router Cache no longer caches page components by default (staleTimes.dynamic defaults to 0).

    Migration

    To restore previous behavior set `experimental.staleTimes.dynamic = 30` in next.config.js or export `dynamic = 'force-static'` from route handlers.

  • 14 \u2192 15removal

    @next/font package removed; use the built-in `next/font`.

    Migration

    `npm uninstall @next/font` and replace `from '@next/font/google'` with `from 'next/font/google'`.

  • 14 \u2192 15runtime

    Minimum React version is 19 RC+ for App Router. Pages Router still supports React 18.

    Migration

    App Router: upgrade to React 19. Pages Router: stay on React 18 if needed, but new features target 19.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/npm/next