# X_CONFIG_KEY_READER_AMBIGUOUS

## Means

an `AppConfig` leaf key's only "readers" are files matching its **bare** name, none of them in the section's own package and none spelling the qualified `<section>.<key>`

## Typical cause

`X_CONFIG_KEY_UNREAD` matches a bare property access on purpose — a package takes `CacheConfig` as a parameter and reads `cfg.driver` — and that looseness is itself an instance of the defect it hunts. `realtime.tier` was read by nothing and NINETEEN files matched the bare `tier`, `packages/policy/src/surfaces.ts` on the words `tier,` in its own file header, so the rule built to catch a dead key reported `✓` over one. Nineteen readers should always have been the alarm

## Fix

read the key through its section in its owning package so the qualified path appears in source, or delete it from `packages/core/src/config.ts` and from `defaults()`; to keep it deliberately, add it to `CONFIG_AMBIGUOUS_PINS` in `scripts/lib/config-reader-pins.ts` with the sentence naming the reader

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