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
- Enable cacheComponents: add `cacheComponents: true` to the top-level config
- 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
- Enable cacheComponents first, then add dependent experimental flags
- Document flag dependency chains in your config file
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
- `partialPrefetching` requires `cacheComponents` to be enable
- `experimental.useCache` cannot be disabled when `cacheCompon
- `forbidden()` is experimental and only allowed to be enabled
- `unauthorized()` is experimental and only allowed to be used
- Could not parse output from TypeScript's --showConfig.
AI-assisted analysis of vercel/next.js@0ae8c72462 (2026-08-06).
Data as JSON: /api/errors/7f8b69d617cc2de5.
Report an issue: GitHub.