# X_GATE_CODE_UNDOCUMENTED

## Means

a code the never-ships list names has no table row, or a code `scripts/` declares is missing from that list

## Typical cause

the list is a hand-copy of a derived set and nothing read it. `checkErrorCodeDocs` is satisfied by any `` `X_*` `` in backticks **anywhere** on this page (`documentedCodes` is one whole-file regex), so being named inside the parenthesis counted as being documented — 20 codes had a name here and no row. From the other side `checkErrorCodeRegistry` exempts gate codes by scanning `scripts/`, never by reading the list, so four `X_REGISTRY_*` codes had rows above [Reserved codes](/error-codes#reserved-codes) that `x errors explain` refuses

## Fix

`bun run scripts/gate-codes.ts --json` — each finding names the row to write or the code to add to the list

[CLI and verify](/error-codes#cli-and-verify)
