{"record":{"id":"7f8b69d617cc2de5","repo":"vercel/next.js","slug":"experimental-cachednavigations-requires-cacheco","errorCode":null,"errorMessage":"`experimental.cachedNavigations` requires `cacheComponents` to be enabled. Please update your ${configFileName} accordingly.","messagePattern":"`experimental\\.cachedNavigations` requires `cacheComponents` to be enabled\\. Please update your (.+?) accordingly\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/server/config.ts","lineNumber":563,"sourceCode":"      throw new Error(\n        `\\`experimental.turbopackRustReactCompiler\\` is only supported with Turbopack. ` +\n          `Please remove the option or run Next.js with Turbopack in ${configFileName}.`\n      )\n    }\n\n    if (\n      result.experimental.turbopackRustReactCompiler &&\n      !result.reactCompiler\n    ) {\n      throw new Error(\n        `\\`experimental.turbopackRustReactCompiler\\` requires \\`reactCompiler\\` to be enabled. ` +\n          `Please add \\`reactCompiler: true\\` in ${configFileName}.`\n      )\n    }\n  }\n\n  if (result.experimental.cachedNavigations && !result.cacheComponents) {\n    throw new Error(\n      `\\`experimental.cachedNavigations\\` requires \\`cacheComponents\\` to be enabled. Please update your ${configFileName} accordingly.`\n    )\n  }\n\n  if (result.partialPrefetching && !result.cacheComponents) {\n    throw new Error(\n      `\\`partialPrefetching\\` requires \\`cacheComponents\\` to be enabled. Please update your ${configFileName} accordingly.`\n    )\n  }\n\n  if (result.experimental.ppr) {\n    throw new HardDeprecatedConfigError(\n      `\\`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.`\n    )\n  }\n\n  if (result.output === 'export') {\n    if (result.i18n) {","sourceCodeStart":545,"sourceCodeEnd":581,"githubUrl":"https://github.com/vercel/next.js/blob/0ae8c72462952df163f1b1e0726641bc5b40dc93/packages/next/src/server/config.ts#L545-L581","documentation":"`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.","triggerScenarios":"Setting `experimental: { cachedNavigations: true }` without also setting top-level `cacheComponents: true`.","commonSituations":"Enabling navigation caching after reading perf docs without enabling the underlying cacheComponents feature. Partial config migration when cacheComponents was renamed.","solutions":["Enable cacheComponents: add `cacheComponents: true` to the top-level config","Remove cachedNavigations if you don't intend to use cacheComponents"],"exampleFix":"// before\nmodule.exports = { experimental: { cachedNavigations: true } }\n// after\nmodule.exports = {\n  cacheComponents: true,\n  experimental: { cachedNavigations: true }\n}","handlingStrategy":"validation","validationCode":"if (experimental.cachedNavigations && !cacheComponents) {\n  throw new Error('Enable cacheComponents before cachedNavigations')\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Enable cacheComponents first, then add dependent experimental flags","Document flag dependency chains in your config file"],"tags":["config","caching","experimental","cache-components"],"analyzedSha":"0ae8c72462952df163f1b1e0726641bc5b40dc93","analyzedAt":"2026-08-06T19:44:29.143Z","schemaVersion":2},"datasetVersion":"2026-08-07T02:17:10.218Z"}