# X_LOCALE_INVALID

## Means

not a well-formed BCP 47 tag

## Typical cause

`en_US`, `''`, or a raw `Accept-Language` value reaching **any** `@ultimat3/time` entry point that takes a `locale` — `describeCron`, the date/time formatters, `formatRelative`, `formatDuration` and `zoneAbbrev`. Every one of them raised a bare `RangeError` out of `Intl` until 2026-08-23; a `RangeError` carries no code, no `fix:` and no `--json`, so a header value a user controls took a request down with a message nothing could act on. `assertLocale` is the single gate now — `grep -rn 'assertLocale(' packages/time/src` is the list

## Fix

pass `en`, `en-GB`, `de-DE` — screen header input with `Intl.DateTimeFormat.supportedLocalesOf([tag])`

[i18n, money, time](/error-codes#i18n-money-time)
