vercel/next.js · error · Error
Invalid i18n.domains values
Error message
Invalid i18n.domains values:
${invalidDomainItems.map((item: any) => JSON.stringify(item)).join('
')}
domains value must follow format { domain: 'example.fr', defaultLocale: 'fr', locales: ['fr'] }.
See more info here: https://nextjs.org/docs/messages/invalid-i18n-config What it means
Error "Invalid i18n.domains values: ${invalidDomainItems.map((item: any) => JSON.stringify(item)).join(' ')} domains value must follow format { domain: 'example.fr', defaultLocale: 'fr', locales: ['fr'] }. See more info here: https://nextjs.org/docs/messages/invalid-i18n-config" thrown in vercel/next.js.
Solutions
- Fix the listed i18n.domains entries to match { domain, defaultLocale, locales? }.
Defensive patterns
Strategy: validation
When it happens
Trigger: Entries in i18n.domains do not match the required domain object format.
Common situations: Domain entries missing domain/defaultLocale fields in next.config i18n.
AI-assisted analysis of vercel/next.js@34433fd12e (2026-08-19).
Data as JSON: /api/errors/c90e6c5d4f5a7d07.
Report an issue: GitHub.
Appendix: source
Thrown at packages/next/src/server/config.ts:1352
for (const domainItem of i18n.domains || []) {
if (domainItem === item) continue
if (domainItem.locales && domainItem.locales.includes(locale)) {
console.warn(
`Both ${item.domain} and ${domainItem.domain} configured the locale (${locale}) but only one can. Remove it from one i18n.domains config to continue`
)
hasInvalidLocale = true
break
}
}
}
}
return hasInvalidLocale
})
if (invalidDomainItems.length > 0) {
throw new Error(
`Invalid i18n.domains values:\n${invalidDomainItems
.map((item: any) => JSON.stringify(item))
.join(
'\n'
)}\n\ndomains value must follow format { domain: 'example.fr', defaultLocale: 'fr', locales: ['fr'] }.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`
)
}
}
if (!Array.isArray(i18n.locales)) {
throw new Error(
`Specified i18n.locales must be an array of locale strings e.g. ["en-US", "nl-NL"] received ${typeof i18n.locales}.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`
)
}
const invalidLocales = i18n.locales.filter(
(locale: any) => typeof locale !== 'string'
)View on GitHub (pinned to 34433fd12e)