{"record":{"id":"1c17f087b6a70593","repo":"vercel/next.js","slug":"specified-i18n-cannot-be-used-with-output-expo","errorCode":null,"errorMessage":"Specified \"i18n\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/messages/export-no-i18n","messagePattern":"Specified \"i18n\" cannot be used with \"output: export\"\\. See more info here: https://nextjs\\.org/docs/messages/export-no-i18n","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/server/config.ts","lineNumber":582,"sourceCode":"      `\\`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) {\n      throw new Error(\n        'Specified \"i18n\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/messages/export-no-i18n'\n      )\n    }\n\n    if (!hasNextSupport) {\n      if (result.rewrites) {\n        Log.warn(\n          'Specified \"rewrites\" will not automatically work with \"output: export\". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'\n        )\n      }\n      if (result.redirects) {\n        Log.warn(\n          'Specified \"redirects\" will not automatically work with \"output: export\". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'\n        )\n      }\n      if (result.headers) {\n        Log.warn(\n          'Specified \"headers\" will not automatically work with \"output: export\". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'","sourceCodeStart":564,"sourceCodeEnd":600,"githubUrl":"https://github.com/vercel/next.js/blob/0ae8c72462952df163f1b1e0726641bc5b40dc93/packages/next/src/server/config.ts#L564-L600","documentation":"Static HTML export (`output: 'export'`) cannot generate per-locale static pages, so the `i18n` config is incompatible with it. If both `output === 'export'` and an `i18n` object are set, normalization throws. The error links to the export-no-i18n docs message.","triggerScenarios":"Setting both `output: 'export'` and an `i18n: { locales: [...], defaultLocale: '...' }` in next.config.","commonSituations":"Migrating a localized app to static export. Enabling export for hosting on a static host while keeping the existing i18n config.","solutions":["Remove the i18n config and implement localization at the app layer (e.g. i18n routing with app-router `[locale]` segments, or next-intl)","Drop `output: 'export'` and use a Node/server runtime that supports i18n"],"exampleFix":"// before\nmodule.exports = {\n  output: 'export',\n  i18n: { locales: ['en', 'fr'], defaultLocale: 'en' }\n}\n// after\nmodule.exports = {\n  output: 'export'\n  // handle locales via app-router [locale] segment\n}","handlingStrategy":"validation","validationCode":"if (config.output === 'export' && config.i18n) {\n  delete config.i18n // and move locale logic to app-router [locale] segments\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Don't combine output:'export' with i18n; implement locale routing in the app layer","Validate the config combination before build"],"tags":["config","i18n","static-export","output"],"analyzedSha":"0ae8c72462952df163f1b1e0726641bc5b40dc93","analyzedAt":"2026-08-06T19:44:29.143Z","schemaVersion":2},"datasetVersion":"2026-08-07T02:17:10.218Z"}