vercel/next.js · error
Specified "i18n" cannot be used with "output: export". See m
Error message
Specified "i18n" cannot be used with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-i18n
What it means
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.
Source
Thrown at packages/next/src/server/config.ts:582
`\`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) {
throw new Error(
'Specified "i18n" cannot be used with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-i18n'
)
}
if (!hasNextSupport) {
if (result.rewrites) {
Log.warn(
'Specified "rewrites" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'
)
}
if (result.redirects) {
Log.warn(
'Specified "redirects" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'
)
}
if (result.headers) {
Log.warn(
'Specified "headers" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'View on GitHub (pinned to 0ae8c72462)
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
Example fix
// before
module.exports = {
output: 'export',
i18n: { locales: ['en', 'fr'], defaultLocale: 'en' }
}
// after
module.exports = {
output: 'export'
// handle locales via app-router [locale] segment
} Defensive patterns
Strategy: validation
Validate before calling
if (config.output === 'export' && config.i18n) {
delete config.i18n // and move locale logic to app-router [locale] segments
} Prevention
- Don't combine output:'export' with i18n; implement locale routing in the app layer
- Validate the config combination before build
When it happens
Trigger: Setting both `output: 'export'` and an `i18n: { locales: [...], defaultLocale: '...' }` in next.config.
Common situations: Migrating a localized app to static export. Enabling export for hosting on a static host while keeping the existing i18n config.
Related errors
- NEXT_EXPORT_ERROR
- Specified i18n should be an object received ${i18nType}. See
- Specified i18n.locales should be an Array received ${typeof
- Specified i18n.defaultLocale should be a string. See more in
- Specified i18n.domains must be an array of domain objects e.
AI-assisted analysis of vercel/next.js@0ae8c72462 (2026-08-06).
Data as JSON: /api/errors/1c17f087b6a70593.
Report an issue: GitHub.