vercel/next.js · error

`experimental.cachedNavigations` requires `cacheComponents`

Error message

`experimental.cachedNavigations` requires `cacheComponents` to be enabled. Please update your ${configFileName} accordingly.

What it means

`experimental.cachedNavigations` caches client-side navigations between renders, but that optimization depends on `cacheComponents` being enabled (the cached/PPR component system). If cachedNavigations is truthy and cacheComponents is falsy, normalization throws. This check runs every phase.

Source

Thrown at packages/next/src/server/config.ts:563

      throw new Error(
        `\`experimental.turbopackRustReactCompiler\` is only supported with Turbopack. ` +
          `Please remove the option or run Next.js with Turbopack in ${configFileName}.`
      )
    }

    if (
      result.experimental.turbopackRustReactCompiler &&
      !result.reactCompiler
    ) {
      throw new Error(
        `\`experimental.turbopackRustReactCompiler\` requires \`reactCompiler\` to be enabled. ` +
          `Please add \`reactCompiler: true\` in ${configFileName}.`
      )
    }
  }

  if (result.experimental.cachedNavigations && !result.cacheComponents) {
    throw new Error(
      `\`experimental.cachedNavigations\` requires \`cacheComponents\` to be enabled. Please update your ${configFileName} accordingly.`
    )
  }

  if (result.partialPrefetching && !result.cacheComponents) {
    throw new Error(
      `\`partialPrefetching\` requires \`cacheComponents\` to be enabled. Please update your ${configFileName} accordingly.`
    )
  }

  if (result.experimental.ppr) {
    throw new HardDeprecatedConfigError(
      `\`experimental.ppr\` has been merged into \`cacheComponents\`. The Partial Prerendering feature is still available, but is now enabled via \`cacheComponents\`. Please update your ${configFileName} accordingly.`
    )
  }

  if (result.output === 'export') {
    if (result.i18n) {

View on GitHub (pinned to 0ae8c72462)

Solutions

  1. Enable cacheComponents: add `cacheComponents: true` to the top-level config
  2. Remove cachedNavigations if you don't intend to use cacheComponents

Example fix

// before
module.exports = { experimental: { cachedNavigations: true } }
// after
module.exports = {
  cacheComponents: true,
  experimental: { cachedNavigations: true }
}
Defensive patterns

Strategy: validation

Validate before calling

if (experimental.cachedNavigations && !cacheComponents) {
  throw new Error('Enable cacheComponents before cachedNavigations')
}

Prevention

When it happens

Trigger: Setting `experimental: { cachedNavigations: true }` without also setting top-level `cacheComponents: true`.

Common situations: Enabling navigation caching after reading perf docs without enabling the underlying cacheComponents feature. Partial config migration when cacheComponents was renamed.

Related errors


AI-assisted analysis of vercel/next.js@0ae8c72462 (2026-08-06). Data as JSON: /api/errors/7f8b69d617cc2de5. Report an issue: GitHub.