# X_CATALOG_CARRIER_UNSCANNED

## Means

the carried-key rule found no key the framework hands to `t()` through a constant or a property

## Typical cause

`scripts/catalog-keys.ts` derives its carriers from the framework's own dynamic `t()` calls (`t(row.reason)`, `ui.t(UI_KEYS.close)`), so a renamed `t()` or a moved corpus leaves it nothing to check — and a rule with no input reads exactly like a tree with no missing key

## Fix

`bun run scripts/catalog-keys.ts --json` — then edit `DYNAMIC_CALL` in `scripts/catalog-keys.ts` to match how the framework calls `t()`

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