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

  1. Remove the i18n config and implement localization at the app layer (e.g. i18n routing with app-router `[locale]` segments, or next-intl)
  2. 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

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


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