Ultimate

Error codes

Every framework failure is an UltimateError carrying a stable X_* code, a concrete cause, and the exact command or edit that fixes it. Same content in the terminal, the dev overlay, the HTTP body, the MCP tool result and --json.

X_DB_DRIFT: schema differs from migrations
  cause: table "posts" has column "publish_at" not present in any migration
  fix:   x db gen "add publish_at"
{"code":"X_DB_DRIFT","title":"schema differs from migrations","cause":"table \"posts\" has column \"publish_at\" not present in any migration","fix":"x db gen \"add publish_at\"","docs":"https://github.com/developerz-ai/ultimate/wiki/Error-Codes"}

The HTTP body is the same content as an RFC 9457 problem document — type, title, status, detail, plus code, cause, fix, docs, requestId and retry (terminal, retryable or retry-after: the class a client maps to an exception, on every document, a hidden 5xx included) as top-level extension members. Two more are carried when the error has them: issues, the per-field rejections of a validation failure, and meta, the keys of the error's own meta that the app declared for that code with registerProblemMeta (everything else in meta is operator-only and never leaves the process). Both are all-or-nothing and both are dropped, with cause, on a 5xx nobody classified.

RuleDetail
Lookupx errors explain <CODE> --json, or the MCP errors.explain tool — same content as this page
Uniquenessone code is owned by exactly one package; a collision throws X_ERROR_CODE_DUPLICATE at registration
Stabilitycodes never change meaning. A renamed concept gets a new code and the old one stays documented
fixalways runnable or editable as written. If a fix reads "do the right thing", that is a bug — file it
Bare Errornever thrown by the framework. Anything caught is normalised through toUltimateError()
Registrationa code exists when its owning package calls registerErrorCodes(). That one call is what makes it explainable, unique and documented-or-fail — a code emitted as a Finding rather than thrown is registered the same way
App codesan app declares each of its own codes ONCE: defineError({ code, title, status, cause, fix }) from @ultimat3/core (offSocket: true in place of status for a code no response carries) registers the title, the HTTP status and the retry, and returns the class to throw — throw new PostNotFound(ref), PostNotFound.is(error). A code with no status answers 500 and hides its cause, so the call makes you choose. An app code needs no row on this page; guards/error-declared.ts refuses a handwritten UltimateError subclass and a literal-coded new UltimateError. A framework code goes through bun run new-error-code instead
Enforcementthe errors step of x verify fails on an empty or advice-only fix (X_ERROR_FIX_INVALID), on a fix citing a file the repo does not have (X_ERROR_FIX_PATH_MISSING), on a declared code with no row on this page (X_ERROR_CODE_UNDOCUMENTED), on a row this page presents as live that no package registers (X_ERROR_CODE_UNREGISTERED), and on a code: reached through a name nothing in its own file declares (X_ERROR_CODE_UNRESOLVED)

As of 2026-10 every code above Reserved codes resolves through x errors explain, with one exception the gate knows about: this repository's own gate scripts (X_BOUNDARY_VIOLATION, X_ROADMAP_*, X_REFERENCE_APP_*, X_TRUST_*, X_CATALOG_CARRIER_UNSCANNED, X_CATCH_RENDER_PIN_STALE, X_CATCH_RENDER_UNSAFE, X_CATCH_RENDER_UNSCANNED, X_CONFIG_KEY_UNREAD, X_CONFIG_READERS_UNSCANNED, X_CONFIG_READER_PIN_STALE, X_DECLARED_KEY_UNREAD, X_DECLARATION_READER_PIN_STALE, X_DECLARATION_READERS_UNSCANNED, X_DOC_COMMAND_PIN_EXCEEDED, X_DOC_CONFIG_KEY_UNKNOWN, X_DOC_CONFIG_ALLOWANCE_STALE, X_SCAFFOLD_VERIFY_UNREADABLE, X_TIER_FLOOR_STALE, X_TIER_FLOOR_UNDECLARED, X_SCAFFOLD_OVERRIDES_EMPTY, X_SCAFFOLD_GATE_RED, X_SCAFFOLD_FIRST_RUN_FAILED, X_SETUP_INSTALL_FAILED, X_ADMIN_FLATTENER_VIOLATION, X_CONFIG_IMPORT_OUTSIDE_LOADER, X_ERROR_RENDER_UNSAFE, X_ERROR_STATUS_MISSING, X_ERROR_STATUS_BACKLOG_STALE, X_ERROR_STATUS_UNKNOWN_CODE, X_CATALOG_KEY_UNREACHABLE, X_PUBLISH_LIST_INCOMPLETE, X_PUBLISH_LIST_UNKNOWN, X_BENCH_CLAIM_STALE, X_BENCH_URL_REQUIRED, X_BENCH_STREAM_CLOSED, X_BENCH_RUN_TOO_SHORT, X_BENCH_RUN_FAILED, X_WIKI_TABLE_MALFORMED, X_WIKI_TABLE_UNSCANNED, X_FRAME_DOCS_STALE, X_CHART_VERSION_STALE, X_IMAGE_LIBC_MISMATCH, X_IMAGE_GUARD_MISSING, X_IMAGE_SECRET_UNIGNORED, X_IMAGE_CONTENT_UNIGNORED, X_DOC_FIX_UNRUNNABLE, X_DOC_FIX_UNSCANNED, X_DOC_FIX_DISAGREES, X_DOC_FIX_DISAGREES_PIN_STALE, X_DOC_CAUSE_ECHOES_TITLE, X_DOC_COMMAND_UNKNOWN, X_DOC_COMMAND_ALLOWANCE_STALE, X_DOC_COMMAND_UNSCANNED, X_DOC_COMMAND_PIN_STALE, X_DOC_TEST_PATH_BARE, X_DOC_TEST_PATH_UNSCANNED, X_TSCONFIG_PATH_MISSING, X_TSCONFIG_PATH_STALE, X_TSCONFIG_PATHS_UNSCANNED, X_DOC_GATE_STEPS_STALE, X_DOC_GATE_STEPS_UNSCANNED, X_DOC_SETUP_COMMAND_STALE, X_DOC_SETUP_COMMANDS_UNSCANNED, X_DOC_SETUP_COMMAND_STALE, X_DOC_SETUP_COMMANDS_UNSCANNED, X_README_EXAMPLE_UNCOMPILED, X_README_EXAMPLE_PIN_STALE, X_README_EXAMPLE_UNSCANNED, X_README_SAMPLE_DRIFT, X_README_FACTS_DRIFT, X_PRODUCTION_APPS_DRIFT, X_ADOPTION_CLAIM_UNGENERATED, X_PACKAGE_README_SHAPE, X_PACKAGE_KEYWORDS_MISSING, X_VERSION_STAMP_STALE, X_VERSION_STAMP_DUPLICATE, X_VERSION_LOCKSTEP_BROKEN, X_VERSION_STAMP_UNSCANNED, X_COVERAGE_BELOW, X_COVERAGE_PIN_STALE, X_COVERAGE_UNMEASURED, X_TEST_TYPECHECK_REGRESSED, X_TEST_TYPECHECK_PIN_STALE, X_TEST_TYPECHECK_UNSCANNED, X_DOC_FILE_COUNT_STALE, X_DOC_FILE_COUNT_UNSCANNED, X_DOC_RELEASE_FACT_STALE, X_DOC_RELEASE_FACT_UNSCANNED, X_DOC_PACKAGE_GRAPH_STALE, X_DOC_PACKAGE_GRAPH_UNSCANNED, X_TEST_FIX_UNRUNNABLE, X_TEST_FIX_PIN_STALE, X_TEST_FIX_UNSCANNED, X_TEST_THROW_NOT_THROWN, X_TEST_BARE_ERROR, X_TEST_BARE_ERROR_PIN_STALE, X_TEST_BARE_ERROR_UNSCANNED, X_SOURCE_BARE_ERROR, X_SOURCE_BARE_ERROR_EXEMPT_STALE, X_TEST_REAL_SLEEP, X_TEST_REAL_SLEEP_PIN_STALE, X_TEST_REAL_SLEEP_UNSCANNED, X_RELEASE_VERSION_UNSTATED, X_RELEASE_FLAG_UNKNOWN, X_RELEASE_TREE_DIRTY, X_RELEASE_VERSION_INVALID, X_RELEASE_MAJOR_WINDOW, X_BREAKING_ON_MAIN, X_RELEASE_UNDEPRECATED_REMOVAL, X_CHANGELOG_HIGHLIGHTS_MISSING, X_DOC_CHANGELOG_SECTION_INVALID, X_DOC_CHANGELOG_UNRELEASED_BREAKING, X_DOC_MIGRATION_COUNT_STALE, X_DOC_MIGRATION_SECTION_MISSING, X_DOC_MIGRATION_UNSCANNED, X_DOC_MIGRATION_UNPAIRED, X_DOC_MIGRATION_RANGE_STALE, X_RELEASE_UNRELEASED_MISSING, X_RELEASE_TAG_UNREACHABLE, X_RELEASE_WINDOW_UNREADABLE, X_RELEASE_HEAD_NOT_MAIN, X_HEALTH_ROW_UNREADABLE, X_LOCKFILE_STALE, X_REGISTRY_BOOTSTRAP_OWED, X_REGISTRY_LATEST_DRIFT, X_REGISTRY_UNATTESTED, X_REGISTRY_UNREACHABLE, X_REGISTRY_VERSION_BEHIND, X_GATE_CODE_UNDOCUMENTED, X_GATE_CODE_BACKLOG_STALE, X_SIDE_EFFECTS_*, X_DEAD_DOCS_HOST, X_DEAD_DOCS_HOST_PIN_STALE, X_DEAD_DOCS_HOST_UNSCANNED, X_SECRET_COMPARED_UNSAFELY, X_SECRET_COMPARE_PIN_STALE, X_SECRET_COMPARE_UNSCANNED, X_VERSION_STAMP_PIN_STALE, X_WORKSPACE_MANIFEST_UNREADABLE, X_CONFIG_KEY_READER_AMBIGUOUS, X_PROTO_CHAIN_INDEX, X_PROTO_CHAIN_INDEX_PIN_STALE, X_PROTO_CHAIN_INDEX_UNSCANNED, X_NODE_IMPORT_UNEXPLAINED, X_NODE_IMPORT_PIN_STALE, X_NODE_IMPORT_UNSCANNED, X_FLIGHT_RANDOM_UNINJECTED, X_FLIGHT_SECOND_CURVE, X_HELPER_COPY, X_NOT_IMPLEMENTED_COPY, X_NOT_IMPLEMENTED_COPY_UNSCANNED, X_FRAMEWORK_TABLE_UNAPPLIED, X_FRAMEWORK_TABLE_UNSCANNED, X_SQL_LITERAL_COPY, X_SQL_LITERAL_UNSCANNED, X_INDEX_ORDER_UNGUARDED, X_INDEX_ORDER_PIN_STALE, X_INDEX_ORDER_PIN_UNEXPLAINED, X_INDEX_ORDER_UNSCANNED, X_SKIP_CLEANUP_UNREACHED, X_SKIP_CLEANUP_UNSCANNED, X_TEST_DISCOVERY_UNSEEN, X_TEST_DISCOVERY_UNSCANNED, X_PROBE_DATABASE_FIXED, X_SPAWN_UNTIMED, X_SPAWN_TIMEOUT_PIN_STALE, X_SPAWN_TIMEOUT_PIN_UNEXPLAINED, X_SPAWN_TIMED_OUT, X_FETCH_UNBOUNDED, X_FETCH_DEADLINE_PIN_STALE, X_FETCH_DEADLINE_PIN_UNEXPLAINED, X_FINITE_BOUND_UNCHECKED, X_FINITE_BOUND_PIN_STALE, X_FINITE_BOUND_UNSCANNED, X_VOCABULARY_REDECLARED, X_VOCABULARY_UNSCANNED, X_FROZEN_RECORD_INFERRED, X_FROZEN_RECORD_UNSCANNED, X_CONFIG_READER_PIN_UNEXPLAINED, X_SECRET_COMPARE_PIN_UNEXPLAINED, X_PROTO_CHAIN_INDEX_PIN_UNEXPLAINED, X_FIX_SHELL_ARG_UNSCREENED, X_FIX_SHELL_ARG_PIN_STALE, X_FIX_SHELL_ARG_PIN_UNEXPLAINED, X_FIX_SHELL_ARG_UNSCANNED, X_BROWSER_TRANSPORT_UNSCANNED, X_CHANNEL_LITERAL, X_CHANNEL_LITERAL_UNSCANNED, X_SEAL_CALL_OUTSIDE_CORE, X_SEAL_CALL_UNSCANNED, X_KEYED_HASHER, X_KEYED_HASHER_EXEMPT_STALE, X_INSTRUMENT_SLOT_FORBIDDEN, X_INSTRUMENT_SLOT_ALLOWANCE_STALE, X_ADAPTER_PORT_INCOMPLETE, X_CLI_OUTBOUND_UNDECLARED, X_CLI_OUTBOUND_ALLOWANCE_STALE, X_PRIVATE_NAME, X_PRIVATE_NAMES_UNSET, X_GUARD_LOAD_FAILED, X_BUDGET_RAISE_UNSTATED, X_NEW_ERROR_CODE_INVALID, X_NEW_ERROR_CODE_EXISTS, X_NEW_ERROR_CODE_PATTERN_UNKNOWN, X_BUDGET_BASE_MISSING, X_PIN_RAISE_UNSTATED, X_PIN_BASE_MISSING, X_CORPUS_UNSCANNED, X_DOC_UNRELEASED_STALE, X_DOC_UNRELEASED_PIN_STALE, X_LLMS_TXT_DRIFT, X_GUARDS_DOC_DRIFT, X_GUARDS_DOC_UNSCANNED, X_CLAUDE_MD_OVERSIZE, X_CLAUDE_MD_UNSCANNED, X_CONFIG_READER_APP_UNREAD, X_FIX_PROSE, X_FIX_PROSE_PIN_STALE, X_FIX_PROSE_PIN_UNEXPLAINED, X_FIX_PROSE_UNSCANNED, X_DOC_PATH_DEAD, X_ROOT_BIN_REINTRODUCED, X_VERIFY_PART_UNNAMED, X_PLAN_STATUS_INVALID, X_PLAN_STATUS_UNSCANNED, X_URL_PATHNAME_AS_PATH, X_RELATIVE_PATH_NOT_POSIX, X_SET_COOKIE_HAND_BUILT, X_SET_COOKIE_PIN_STALE, X_SET_COOKIE_UNSCANNED, X_FACTORY_NAME_SPELLING, X_CORE_THROWER_UNCALLED, X_CORE_THROWER_PIN_STALE, X_CORE_THROWERS_UNSCANNED, X_SQL_EXPORT_UNREAD, X_SQL_EXPORT_UNSCANNED, X_WIKI_EXAMPLE_UNCOMPILED, X_WIKI_EXAMPLE_PIN_STALE, X_WIKI_EXAMPLE_UNSCANNED, X_WIKI_ANCHOR_DEAD, X_WIKI_ANCHOR_UNSCANNED, X_KNOWN_GAP_LINK_MALFORMED, X_KNOWN_GAP_UNSCANNED, X_KNOWN_GAP_UNPINNED, X_KNOWN_GAP_PIN_STALE, X_DOC_TUTORIAL_DIVERGED, X_DOC_UID_STALE, X_DOC_UID_UNSCANNED, X_DOC_BOUNDARY_RULES_STALE, X_DOC_BOUNDARY_RULES_UNSCANNED, X_SOURCE_HEADER_MISSING, X_SOURCE_HEADER_OUT_OF_CONTRACT, X_SOURCE_HEADER_PIN_STALE, X_SOURCE_HEADER_UNSCANNED, X_DEPENDENCY_NOT_ALLOWLISTED, X_DEPENDENCY_ALLOWLIST_STALE, X_DEPENDENCY_UNSCANNED, X_DEPENDENCY_RANGE_CONFLICT) never ship, so no package may own them. See Troubleshooting for symptom-first triage and CLI reference for the commands named in the fixes.

Core and runtime

CodeMeans
X_ABORTEDoperation aborted
X_TIMEOUToperation exceeded its deadline
X_INTERNALunexpected internal framework error
X_INVARIANTinvariant violated
X_UNREACHABLEunreachable branch was reached
X_NOT_IMPLEMENTEDthis driver does not implement the requested feature
X_ASYNC_CONTEXT_UNAVAILABLEasync context unavailable
X_NO_CONTEXTno request context is active
X_SERVICE_MISSINGservice is not registered on the request context
X_SERVICE_DUPLICATEa service name is registered twice
X_ROLE_INVALIDROLE is not a known runtime role
X_DRAININGprocess is draining and refuses new work
X_SHUTDOWN_TIMEOUTgraceful shutdown exceeded its deadline
X_FLIGHT_GATE_OVERLOADEDa concurrency gate is at its ceiling and its queue is full
X_SUPERSEDEDa later generation superseded this work
X_CLIENT_TRANSPORT_FAILEDa browser request got no answer from the app
X_CLIENT_RECORD_ENVELOPE_INVALIDa response marked as a records envelope has the wrong shape
X_CLIENT_SCOPE_CHANGEDthe page changed principal while this request was in flight
X_READINESS_CHECK_DUPLICATEa readiness check name is registered twice
X_LIFECYCLE_DRAINEDa drained process cannot become ready again
X_ERROR_RETRY_INVALIDerror retry classification is unknown or already claimed
X_ID_INVALIDvalue is not a valid id
X_CURSOR_INVALIDpagination cursor is malformed, tampered with or from another query
X_CURSOR_SECRET_DEVcursors are signed with the shipped development key
X_ERROR_CODE_DUPLICATEerror code registered twice
X_ERROR_REPORTER_DSN_INVALIDthe error monitor DSN is malformed
X_REGISTRAR_MISSINGno registrar is loaded for a primitive kind
X_REGISTRAR_CONFLICTtwo different registrars are loaded for one primitive kind
X_SECRETS_KEY_ACL_FAILEDkey file ACL not owner-only
X_COOKIE_INVALIDa Set-Cookie value would be dropped, misread or injectable
X_OUTBOUND_TIMEOUTan outbound HTTP call passed its deadline or went idle
X_OUTBOUND_UNREACHABLEan outbound HTTP call got no response
X_OUTBOUND_THROTTLEDan outbound HTTP call was told to wait
X_OUTBOUND_UNAVAILABLEan outbound HTTP call answered a retryable status
X_OUTBOUND_REFUSEDan outbound HTTP call answered a non-retryable status
X_OUTBOUND_TOO_LARGEan outbound HTTP response body passed its byte cap
X_OUTBOUND_HOST_BLOCKEDan outbound HTTP call refused the address it would reach
X_OUTBOUND_REDIRECTEDan outbound HTTP call answered a redirect
X_OUTBOUND_RETRY_UNSAFEa retry was asked for on a write that is not idempotent
X_OUTBOUND_BODY_INVALIDan outbound HTTP response did not match its schema
X_BREAKER_OPENa circuit breaker is open and refused the call
X_ERROR_DECLARATION_INVALIDa defineError declaration is malformed
X_CLIENT_ERRORa browser reported an uncaught failure
X_HTTP_PATH_INPUT_CONFLICTa path parameter and the request body or query name one key with two values
X_ERROR_UNDECLAREDa handler threw a 4xx code its errors: list does not declare
X_ACTION_ERRORS_INVALIDan errors: list names a code that cannot be declared there
X_CONTRACT_EXERCISE_ENVIRONMENTa contract exercise was asked to run in a deployed environment
X_CONTRACT_EXERCISE_UNSCOPEDa contract exercise could not roll back its writes

Metrics

Counter, gauge and histogram live in @ultimat3/core (metrics.ts), aggregate in process, and are read through one collectMetrics(). The wire format is a driver: MetricExporter is the seam, the default is a no-op, and metricsText() renders the Prometheus/OpenMetrics scrape body behind METRICS_PATH. An OTLP client ships As of 2026-08: otlpMetricExporter() and otlpSpanExporter() speak OTLP/HTTP JSON and read OTEL_EXPORTER_OTLP_ENDPOINT, with no new dependency. gRPC on :4317 is refused by design; scraping /metrics with an agent stays equally supported.

The three series docker/helm autoscales on are http_requests_total (the counter rps is derived from), connections and queue_demand — SCALING_METRICS in runtime-metrics.ts maps each ScalingSignal to its series, so the role table and the chart cannot drift apart.

CodeMeans
X_METRIC_NAME_INVALIDmetric name is malformed, or redeclared with a different kind, bounds or observer
X_METRIC_VALUE_INVALIDmetric value is not recordable
X_METRIC_CARDINALITYa metric exceeded its series ceiling and is folding into one overflow series
X_OTLP_ENDPOINT_INVALIDthe OTLP collector endpoint is missing or malformed
X_OTLP_HEADERS_INVALIDOTEL_EXPORTER_OTLP_HEADERS is malformed
X_OTLP_PROTOCOL_UNSUPPORTEDthe OTLP protocol requested is not OTLP/HTTP JSON
X_TELEMETRY_SAMPLER_ARG_INVALIDthe trace sampling ratio is not a number between 0 and 1

Images

One pipeline in @ultimat3/core serves storage, seo and pwa. It decodes PNG, JPEG, WebP and GIF and encodes PNG, JPEG and WebP (DECODABLE_FORMATS / ENCODABLE_FORMATS, As of 2026-10); AVIF and SVG are identified and measured — enough to inline width/height and keep CLS at 0 — but never synthesised. A variant in one of those formats comes from a CDN or an ImageTransformDriver, never from a silent passthrough.

CodeMeans
X_IMAGE_UNSUPPORTEDthe built-in image pipeline cannot read or write this format
X_IMAGE_DECODE_FAILEDimage bytes are malformed, truncated or internally inconsistent
X_IMAGE_TOO_LARGEimage exceeds the pipeline pixel ceiling

Config and environment

CodeMeans
X_CONFIG_INVALIDa configuration this process cannot boot on — env or app.config.ts
X_ENV_MISSINGrequired environment variables are missing or invalid
X_ENVIRONMENT_INVALIDULTIMATE_ENV is not a known environment
X_ENV_EXAMPLE_DRIFT.env.example does not declare every variable the schema requires
X_BUN_VERSIONBun is older than the framework floor
X_NOT_IN_APPcommand must run inside an Ultimate app
X_PORT_IN_USEthe dev port is taken
X_DEV_ALREADY_RUNNINGanother x dev already owns this checkout
X_DEV_LOCK_UNREADABLEthe dev lock file cannot be read or removed
X_PORT_INVALIDPORT is not a TCP port number
X_ROLE_UNKNOWNROLE names something that is not a role

Encrypted secrets

One committed file, secrets.enc.json, sealed with AES-256-GCM under a 32-byte master key read from ULTIMATE_SECRETS_KEY first and the gitignored .secrets.key second. Values are decrypted into the process environment by installSecrets() and read back through the app's own envSchema — a secret is an env var, so it has one declaration, one mask and one reader. See CLI reference for x secrets.

The envelope carries a key id: a domain-separated, truncated SHA-256 of the master key, safe to commit. It is what makes "you used the wrong key" and "this file was edited after it was sealed" two different codes instead of one unexplained decryption failure.

CodeMeans
X_SECRETS_KEY_MISSINGno master key for the encrypted secrets file
X_SECRETS_KEY_INVALIDthe master key is not 32 bytes of hex
X_SECRETS_KEY_MISMATCHthe secrets file was sealed with a different master key
X_SECRETS_FILE_MISSINGthe encrypted secrets file does not exist
X_SECRETS_FILE_INVALIDthe encrypted secrets file is not a readable envelope
X_SECRETS_TAMPEREDthe secrets file failed its authentication tag
X_SECRETS_PLAINTEXT_INVALIDthe decrypted secrets are not a flat map of env values
X_SECRETS_EDITOR_MISSINGno $EDITOR to open the decrypted secrets in
X_SECRETS_EDIT_FAILEDthe editor exited non-zero, so nothing was resealed
X_SEAL_KEY_MISSINGno master key to seal or open a value with
X_SEAL_KEY_UNKNOWNa sealed value names a master key this process does not declare
X_SEAL_INVALIDa sealed value did not authenticate, or is not a sealed value
X_WORKSPACE_DEP_UNDECLAREDa workspace imports another workspace its own package.json does not declare
X_PACKAGE_DUPLICATEDtwo copies of one registry-holding framework package (@ultimat3/i18n, @ultimat3/policy, @ultimat3/entity) are installed in one app
X_SHOT_BROWSER_MISSINGx shot has no browser to launch
X_SHOT_HOST_REFUSEDx shot was asked to open a host outside the run's allow list
X_SHOT_ELEMENT_MISSINGno element matched the selector before the deadline
X_SHOT_ELEMENT_UNREADYthe element matched and never became ready to act on
X_SHOT_KEY_INVALIDa key chord the browser cannot press
X_GH_UNAVAILABLEthe GitHub CLI is not runnable from here
X_GH_NOT_AUTHENTICATEDgh holds no credentials for this host
X_GH_COMMAND_FAILEDa gh invocation exited non-zero
X_GH_RESPONSE_INVALIDgh's output is not the shape the command reads
X_PR_NOT_FOUNDno pull request for this checkout
X_CI_RUN_NOT_FOUNDno workflow run for this branch
X_SEAL_RESEAL_PENDINGsealed columns still hold values under a retired master key

Schema and validation

CodeMeans
X_VALIDATION_FAILEDvalue did not match its schema
X_SCHEMA_UNSUPPORTEDthe active schema provider cannot do this
X_SCHEMA_DISCRIMINANT_INVALIDa discriminated union member can never be dispatched to
X_SCHEMA_DEFAULT_UNSHAREABLEa schema default cannot be copied per parse
X_SCHEMA_DEFAULT_INVALIDa schema default fails its own schema
X_SCHEMA_BOUNDS_INVALIDan array bound no array can satisfy
X_SCHEMA_SENSITIVE_OUTPUTa sensitive field is reachable from an output
X_SCHEMA_ISSUE_CAP_INVALIDa validation issue cap no list can meet

HTTP

CodeMeans
X_ROUTE_NOT_FOUNDno route matches this request
X_METHOD_NOT_ALLOWEDroute exists but not for this method
X_PATH_INVALIDa path segment is not valid percent-encoding
X_ROUTE_CONFLICTtwo routes claim the same path
X_BODY_INVALIDrequest body failed its schema
X_UNAUTHENTICATEDno authenticated actor for this request
X_FORBIDDENpolicy denied this actor
X_RATE_LIMITEDrate limit exhausted for this key
X_RATE_LIMIT_NOT_SHAREDthe app declared a fleet-wide rate limit and the store keeps its counters per process
X_RATE_LIMIT_BUCKET_CONFLICTone bucket has two declarations that disagree
X_RATE_LIMIT_BUCKET_UNBOUNDthe installed limiter does not hold a bucket a route declares
X_RATE_LIMIT_SCOPE_UNSETthe deployment has not said where the rate limiter keeps its counters
X_RATE_LIMIT_TENANT_BUCKET_UNKNOWNthe tenant allowance names a bucket nothing declares
X_RATE_LIMIT_INVALIDa declared rate limit computes to numbers the limiter cannot run on
X_RATE_LIMIT_STORE_UNAVAILABLEthe shared rate-limit store did not answer, so nothing decided
X_TRUST_PROXY_UNSETproxy headers are trusted without saying how many proxies are in front
X_OVERLOADEDin-flight requests are at the configured ceiling
X_CSRF_BLOCKEDan unsafe request that did not prove same-origin
X_WEBHOOK_SIGNATURE_INVALIDthe inbound webhook is not signed by the holder of this secret
X_WEBHOOK_SIGNATURE_STALEthe inbound webhook is signed correctly and is too old to accept
X_BUILD_SKEWclient build id does not match the server build id
X_SERVER_NOT_STARTEDserver handle used before start()
X_PIPELINE_NO_RESPONSEa pipeline stage produced no response
X_PIPELINE_FINALIZE_FAILEDa finalize stage threw instead of finishing the response
X_NO_REQUESTthe inbound request is not in scope here
X_ERROR_STATUS_INVALIDan error code cannot be mapped to that status
X_PROBLEM_META_INVALIDa problem document cannot carry that meta declaration
X_CORS_CONFIG_INVALIDthe cors config can never produce a working response
X_CSP_DIRECTIVE_INVALIDa csp extension would emit something other than the directive it names
X_BEARER_MOUNT_INVALIDa bearer mount declaration cannot be served as written
X_RATE_LIMIT_STORE_TIMEOUTthe shared rate-limit store did not answer inside its own deadline
X_EXERCISE_REQUEST_INVALIDan exercise entry's request is not one a browser could send
X_BODY_TOO_LARGErequest body over the transport ceiling

Policy and authz

A denial is X_FORBIDDEN, above — @ultimat3/policy owns it and every surface adapter throws it, so there is one code for "the policy said no" wherever it was decided.

CodeMeans
X_POLICY_MISSINGan action was declared without a policy
X_POLICY_CLAUSE_EMPTYa policy combinator was built with no clauses
X_PERMISSION_UNKNOWNpermission string is not in the permission set
X_POLICY_SURFACE_UNKNOWNenforce() was handed a surface no adapter answers to
X_ROLE_REDEFINEDtwo modules define the same role differently
X_TENANCY_UNSCOPEDa tenant-scoped query has no org predicate
X_TENANCY_ACTOR_MISMATCHa call named a tenant other than the actor's — as a query predicate, or as the tenant column of a row being written
X_TENANCY_ACTOR_ORG_REQUIREDthe acting actor carries no tenant
X_TENANCY_CROSS_DENIEDa cross-tenant read was entered without the capability
X_ACTION_POLICY_MISSINGan action was registered without a policy
X_QUERY_POLICY_MISSINGa query was registered without a policy
X_QUERY_NOT_PAGEABLEa read returned rows with no id, so a cursor cannot name a position
X_QUERY_COLUMN_UNSELECTEDa read filters or sorts on a column its rows do not carry
X_CURSOR_VALUE_UNSUPPORTEDa sort value cannot be carried in a cursor
X_AGGREGATE_UNSUPPORTEDthat column has no aggregate both drivers can answer alike
X_AGGREGATE_MIXED_CURRENCYan amount was aggregated across currencies
X_APPROXIMATE_COUNT_FILTEREDan estimate was asked of a filtered chain
X_QUERY_CACHE_TTL_INVALIDa query declares a cache ttlMs no tier can hold
X_QUERY_INPUT_UNENCODABLEa query input cannot be carried in a query string
X_QUERY_SUBSCRIBES_INVALIDa query declares subscribed relations no live read can use
X_QUERY_SUBSCRIBES_DRIFTa live query subscribes to a relation its own sql never reads
X_QUERY_SUBSCRIBES_UNKNOWNa live query subscribes to a table no entity declares

Auth and sessions

CodeMeans
X_SESSION_EXPIREDsession passed its idle or absolute expiry
X_MFA_REQUIREDpassword proven, second factor outstanding
X_MFA_SECRET_INVALIDa TOTP secret that is not RFC 4648 base32, so it decodes to zero bytes
X_OAUTH_STATE_INVALIDstate, nonce or PKCE verifier did not match
X_OAUTH_EXCHANGE_FAILEDthe provider refused the exchange or returned no usable identity
X_OAUTH_TOKEN_INVALIDthe id token failed its signature, issuer, audience or expiry check
X_OAUTH_PROVIDER_DUPLICATEtwo oauth providers were registered under one id
X_OAUTH_PROVIDER_UNKNOWNthe URL named a provider this app has not enabled
X_OAUTH_DENIEDthe user or the provider declined the authorization
X_PASSWORD_WEAKstrength check rejected the password
X_ACCOUNT_LOCKEDper-ip, per-account or per-org bucket is inside its lockout
X_AUTH_LIMITER_NOT_SHAREDthe app declared a fleet-wide credential throttle and the limiter keeps its counters per process
X_AUTH_LIMITER_POLICY_MISMATCHa custom credential limiter enforces different numbers than the app declared
X_API_KEY_INVALIDkey unknown, revoked, expired, wrong, or owned by a user who is gone or disabled
X_AUTH_WRITE_FAILEDan adapter write returned no row, so it cannot be confirmed
X_MFA_SECRET_UNSEALEDa stored totp secret is not sealed, so it is never read as one
X_AUTH_SIGN_IN_UNCONFIGUREDa people-facing role started with no sign-in settings outside development and test
X_AUTH_SERVER_INVALIDthe authorization server was configured with a field it cannot run on
X_AUTH_CONSENT_INVALIDa consent was approved for a request the authorization server refuses
X_AUTH_GRANT_DISABLEDa token request named a grant this authorization server does not enable
X_VERIFICATION_PURPOSE_INVALIDa verification purpose was declared twice or without a template
X_VERIFICATION_PURPOSE_UNKNOWNa verification token was issued or consumed for a purpose nothing declared
X_PASSKEY_INVALIDa passkey ceremony response failed its signature, origin, rp id, flag or counter check
X_PASSKEY_CHALLENGE_EXPIREDa passkey ceremony named a challenge that is unknown, already used or past its ttl
X_PASSKEY_STEP_UP_REQUIREDa sensitive action ran without a fresh user-verified passkey proof for its digest
X_SAML_RESPONSE_INVALIDa saml response failed its signature, wrapping, audience, recipient, time, InResponseTo or replay check
X_SAML_METADATA_INVALIDsaml IdP metadata has no entity id, HTTP-Redirect sign-on endpoint or signing certificate
X_IDENTITY_PROVIDER_UNKNOWNthe URL named an identity provider the sso routes were not given

GET /auth/sso/<provider> is the app's route to mount, not one the framework serves. Every OAuth fix above is reachable only where the host routes matching requests to oauthLogin(auth).start.handle; oauthLogin() supplies the descriptors and nothing else mounts them. The thrown fix: and the descriptor's path both read the one declaration in oauth-paths.ts, so the string cannot go stale — but As of 2026-08 serve.ts composes a fixed set of route tables with no seam for a raw Route, so nothing x new scaffolds mounts the pair and an app that has not mounted it itself answers that path with a 404.

Entity and database

CodeMeans
X_RECORD_KEY_MISSINGa row reached its record key without a primary-key value
X_DB_DRIFTschema differs from migrations
X_DB_SCHEMA_UNMIGRATEDan entity declaration no migration recorded
X_DB_SCHEMA_UNDECLAREDa migration records schema no entity declares
X_ENTITY_DUPLICATEtwo entities claim the same name
X_INVARIANT_VIOLATEDa domain invariant rejected this row
X_NOT_FOUNDno row for that id
X_WRITE_UNFILTEREDdeleteWhere() or updateWhere() named no filter columns
X_PATCH_EMPTYupdateWhere() named no columns to write
X_PRELOAD_UNKNOWN_RELATIONno relation of that name on this entity
X_N_PLUS_ONE_QUERYa read repeated once per row
X_N_PLUS_ONE_WRITEa write repeated once per row
X_SEARCH_UNDECLAREDthis entity has no searchable column
X_SEARCH_IN_MEMORYthe in-memory driver cannot answer a full-text match
X_STATE_UNDECLAREDthat column declares no state machine
X_STATE_TRANSITION_ILLEGALthe machine has no such transition
X_STATE_CONFLICTthe row changed after the read this transition was decided on
X_DB_UNAVAILABLEcannot reach the database
X_DB_SCHEMA_STALEthe statement names a table or column the database does not have
X_DB_STATEMENT_FAILEDthe database refused the statement
X_DB_UNIQUE_VIOLATIONa unique constraint rejected the row
X_DB_FOREIGN_KEY_VIOLATIONa foreign key constraint rejected the row
X_DB_SERIALIZATION_FAILUREthe transaction lost a serialization race
X_DB_STATEMENT_TIMEOUTthe statement ran past its statement_timeout
X_DB_LOCK_TIMEOUTthe statement waited past its lock_timeout
X_DB_POOL_EXHAUSTEDno connection was available
X_DB_DRAIN_TIMEOUTthe pool did not drain inside its shutdown budget
X_MIGRATION_CONFLICTthe migration ledger disagrees with this build
X_MIGRATE_CONCURRENTanother migrator holds the migration lock
X_MIGRATION_IRREVERSIBLEthis migration cannot be reversed without data loss
X_MIGRATION_DESTRUCTIVEthis migration destroys data and does not say so
X_MIGRATION_UNGENERATABLEthis migration holds SQL no declaration carries and does not say so
X_MIGRATION_VIEW_DEPENDSa view is compiled against a column this migration retypes
X_MIGRATION_SNAPSHOT_MISSINGthe newest migration records no schema snapshot
X_BRANCH_EXISTSthat branch database already exists
X_SQL_UNSAFESQL was built by string interpolation
X_REPO_CLIENT_PINNEDa repository pinned to its own client cannot join the open transaction
X_DB_GEN_FAILED / X_DB_MIGRATE_FAILEDthe x db step failed for a reason no framework error claimed
X_DB_BRANCH_FAILEDx db branch refused, or failed for a reason no framework error claimed
X_DB_STUDIO_FAILEDreserved, not thrown — x db studio is planned and unreleased, and exits X_NOT_IMPLEMENTED. It shelled out to bunx drizzle-kit studio, a second schema engine for one subcommand
X_SCHEMA_DUMP_DRIFTthe committed schema dump is not what the migrations produce
X_ENTITY_SEALED_PREDICATEa sealed column is read by a predicate, an order or a rule the database evaluates
X_ENTITY_SEALED_IN_VIEWa sealed column is named in a view
X_DB_TRANSACTION_ABORTEDthe server rolled the transaction back
X_DB_COMMIT_UNKNOWNthe connection was lost while COMMIT was in flight
X_DB_SIBLING_SCOPE_TIMEOUTa nested transaction scope waited too long for its sibling
X_ENTITY_APPEND_ONLYan append-only entity was asked to rewrite or remove a row
X_APPEND_ONLY_TRIGGER_MISSINGan append-only table has lost its refusing trigger
X_MIGRATION_APPEND_ONLY_BACKFILLa NOT NULL column added to an append-only table needs a default
X_ENTITY_OPERATOR_UNKNOWNa predicate names an operator outside the vocabulary
X_MIGRATION_CONCURRENT_IN_TRANSACTIONa concurrent index statement is in a migration that runs inside a transaction
X_DB_TRANSACTION_CLOSEDstatement on a finished transaction
X_MIGRATION_ROLLING_UNSAFEthis drop or rename would break the pods still running the old release
X_LOCK_UNSUPPORTEDa repository has no lock
X_DB_POOLER_OPTIONS_REFUSEDthe connection pooler refused the libpq options a pool connects with
X_DB_POOLER_SESSION_REQUIREDthis role needs one backend per session, and a transaction pooler gives it none
X_DB_STATEMENT_BOUND_LOSTthe session's statement bound is not the role's
X_TEST_DRIVER_CLIENT_CHANGEDThe installed client changed inside a testDriver() transaction
X_ENTITY_TENANT_UNDECLAREDa child of a tenant-owned table has no tenant
X_DB_STATEMENT_BOUND_INVALIDa statement bound is not a whole positive number of ms under the role bound
X_MIGRATION_CONCURRENT_PARTITIONEDa concurrent index build names a partitioned table
X_DB_ROW_SECURITY_BYPASSEDrow security is on and the serving role is exempt from it
X_DB_ROW_SECURITY_DRIFTa tenant table and database.rowSecurity disagree about its policy
X_KEYSET_NULL_KEYa keyset page holds a null in one of its sort keys
X_MIGRATION_ROLLBACK_DESTRUCTIVEa rollback would serve an older build over a destructive migration
X_ENTITY_SERIES_UNSUPPORTEDa repository has no series
X_ENTITY_SERIES_INVALIDa time series asked for something no bucket can answer
X_ENTITY_VIEW_READ_ONLYa view entity was asked to write a row
X_ENTITY_RETAIN_UNINDEXEDentity({ retain }) names a column no index leads with
X_ENTITY_COUNTS_INVALIDreferences(…, { countedIn }) names no integer of its parent, or is no key to its primary key
X_ENTITY_RETAIN_INVALIDentity({ retain }) has no window, sits beside appendOnly, or is on a partitioned table
X_LIFECYCLE_TRIGGER_MISSINGa history or counter trigger the migrations created is missing from the database
X_ENTITY_READ_ONLYa read-only entity was asked to write a row
X_DRIVER_UNSUPPORTEDa custom driver was asked for a capability it does not declare
X_DRIVER_CAPABILITY_MISSINGa custom driver declares a capability its raw repo does not implement
X_DRIVER_ROW_OUT_OF_SCOPEa custom driver returned a row outside the plan it was given
X_MIGRATION_PARTITION_CHANGEan existing table gained or lost entity({ partitionBy })
X_ENTITY_PARTITION_INVALIDentity({ partitionBy }) declares a partitioning Postgres cannot build

Actions

CodeMeans
X_MUTATOR_CLOCK_MISSINGa mutator declares conflict: 'last-write-wins' and its entity has no number clock column
X_ACTION_DUPLICATEtwo actions registered under one name
X_ACTION_PATH_DUPLICATEtwo actions derive one HTTP path
X_INPUT_INVALIDinput failed the primitive's schema — an action's, and a query's too
X_OUTPUT_INVALIDthe handler returned a value its output schema rejects
X_ACTION_FOREIGNa value that is not an action was projected as one
X_ACTION_UNREGISTEREDan action was projected before it was registered, so it has no name
X_IDEMPOTENCY_CONFLICTidempotency key reused with a different payload, or still in flight
X_IDEMPOTENCY_KEY_INVALIDan Idempotency-Key header was sent that cannot identify one request
X_IDEMPOTENCY_NOT_SHAREDidempotency is declared fleet-wide and the installed store is per-process
X_IDEMPOTENCY_STATUS_UNKNOWNan idempotency record holds a status this build cannot read
X_IDEMPOTENCY_REPLAYED_FAILUREa retried Idempotency-Key replays a first attempt that failed after it may have committed
X_CONTRACT_DRIFTclient and server disagree about the contract
X_ACTION_DEPRECATION_INVALIDan action declares a deprecation whose dates cannot be rendered
X_AUDIT_SINK_MISSINGan action declares audit: true and no sink is installed
X_AUDIT_SINK_FAILEDan action ran and its sink refused the record, so the change is unrecorded
X_RPC_FAILEDan RPC call failed without a problem+json body
X_ACTION_HTTP_PATH_INVALIDan action's pinned http.path is not a valid path or :param template
X_ACTION_PATH_STYLE_INVALIDdefineApi's http.pathStyle is not a known style
X_OPENAPI_CONFIG_INVALIDdefineApi's openapi block cannot produce a valid document
X_ACTION_PATH_DERIVED_EARLYa path was derived before pathStyle changed
X_MUTATOR_NOT_IDEMPOTENTa mutator is declared without idempotent: true
X_IDEMPOTENCY_RESERVATION_LOSTan idempotent action's reservation was taken over before its transaction could settle it
X_IDEMPOTENT_REPLAY_REDACTEDan idempotent replay would return a field redacted at rest
X_IDEMPOTENCY_OUTPUT_UNSERIALIZABLEan idempotent action's answer cannot be stored as JSON, so no retry could replay it
X_IDEMPOTENCY_RUN_CEILINGa keyed run passed its hard ceiling
X_CONTRACT_DEFECTa generated legal input made a handler fail
X_CONTRACT_EXERCISE_UNREACHEDno generated run reached the handler
X_CONTRACT_EXERCISE_UNDECLARED.contract() on a non-public action names no exercise
X_ACTION_STREAM_INVALIDa streaming action broke its stream contract
X_METER_EXCEEDEDan action's usage meter is spent for this period
X_METER_INVALIDan action's meter cannot be counted against

A code the SERVER threw keeps its own code on the client — including one this table never lists, because an app declares its own through defineError. The typed client rebuilds it as a RemoteActionError marked meta.origin: 'remote' — with the document's declared meta keys put back beside that marker, As of 2026-09-05 — linked to the first of the server's docs and RFC-9457 type that is an absolute http(s) URL — a javascript: in the preferred slot costs nothing, it does not suppress the other — and otherwise to this page, which is the error index. It never synthesizes a per-code URL for a code no row here documents: there is one docs URL in the framework, ERROR_DOCS_URL, and a code lives here in a table row, which has no anchor to link at. As of 2026-08-23.

Queries and live queries

CodeMeans
X_QUERY_DUPLICATEtwo queries registered under one name
X_QUERY_FOREIGNa value that is not a query was projected as one
X_QUERY_UNREGISTEREDa query was projected before it was registered
X_MATCHER_UNSUPPORTEDthe live matcher cannot evaluate this SQL incrementally
X_QUERY_DEPRECATION_INVALIDa query declares a deprecation whose dates cannot be rendered
X_QUERY_SINGLE_INVALIDa query declares single: as something other than a boolean
X_QUERY_AUDIT_SINK_MISSINGa query declares audit: true and no audit sink is installed
X_QUERY_AUDIT_SINK_FAILEDan audited read was refused because the audit sink rejected its record
X_QUERY_DOWNLOAD_INVALIDa query declares a download it cannot serve
X_QUERY_DOWNLOAD_ONLYrows were asked of a query that answers a file
X_QUERY_DOWNLOAD_TOKEN_INVALIDa download URL carries a token this app did not mint for it
X_QUERY_DOWNLOAD_TOKEN_EXPIREDa download URL is past its expiry
X_QUERY_HTTP_PATH_INVALIDa query's pinned http.path is not a valid path template
X_QUERY_ETAG_INVALIDetag: true on a read that has its own validator
X_QUERY_TIMEOUT_INVALIDa read declares a timeoutMs that is not a whole positive number of ms
X_QUERY_MAX_PAGE_INVALIDa query declares a maxPage no page bound can hold

Jobs

CodeMeans
X_IDEMPOTENCY_REQUIREDthe job has no idempotencyKey
X_JOB_TENANT_REQUIREDthe job declares no tenant
X_JOB_DUPLICATEa name or a live key already has a job
X_STEP_DUPLICATEtwo step.run calls share a name
X_JOB_MAX_ATTEMPTSthe job exhausted its retries
X_JOB_TIMEOUTa job exceeded its wall-clock limit
X_JOB_ROW_STATUS_UNKNOWNa queue row carries a status this build does not know
X_JOB_CLAIM_QUEUES_EMPTYa driver was asked to claim with queues: []
X_ACTION_JOB_UNBRIDGEDan action projection was registered as a job
X_JOB_CONCURRENCY_UNENFORCEABLEjob.concurrency is declared and cannot be enforced
X_JOB_LEASE_LOSTthe queue took this job back mid-run
X_JOB_SLOT_LOSTthe fleet concurrency slot this run held was taken by another worker
X_JOB_NOT_CANCELLABLEthe job cannot be cancelled
X_OUTBOX_NO_TXenqueue outside a transaction
X_DRIVER_UNAVAILABLEthe queue driver is unreachable
X_JOB_DECLARATION_INVALIDthe job declaration is missing or mis-declares a field
X_JOB_NOT_REQUEUEABLEthe job is still live and cannot be requeued
X_JOB_KEY_BUSYthe concurrency key already holds its limit of runs
X_JOB_NOT_REMOVABLEthe job is running and cannot be removed
X_JOB_NOT_PROMOTABLEthe job is not waiting on its run time
X_JOB_PAGE_INVALIDa job list page was asked for outside its bounds
X_JOB_ON_SETTLED_FAILEDthe onSettled hook failed after the run was settled
X_JOB_NOT_FOUNDthe queue holds no job with this id
X_JOB_TENANT_MISMATCHa job's payload names an org other than the tenant it runs under
X_STEP_OUTPUT_UNSERIALIZABLEa step returned a value JSON cannot hold
X_JOB_EVENT_INVALIDa waited event failed its schema
X_IMPORT_HEADER_MISMATCHthe csv header does not name the declared columns
X_IMPORT_RECORD_TOO_LARGEone record runs past the bytes a record may hold
X_IMPORT_TOO_MANY_ERRORSmore rows were rejected than the import allows
X_JOB_ENQUEUE_BATCH_TOO_LARGEenqueueMany was handed more inputs than one call may stage
X_WEBHOOK_RECEIVER_INVALIDa webhookReceiver() declaration cannot be served
X_WEBHOOK_RECEIVER_UNAVAILABLEan inbound webhook could not be queued, so it was not acknowledged
X_WEBHOOK_EVENT_ID_INVALIDthe event id a webhook receiver verified is not one it can key a job by
X_JOB_COMPENSATION_FAILEDa compensator could not undo its step
X_STEP_OUTCOME_UNKNOWNa once step started and never completed
X_CONSUMER_INVALIDa consumer() declaration cannot be run as declared
X_CONSUMER_SELF_ENQUEUEa consumer enqueued itself from inside its own run
X_BACKFILL_SOURCE_INVALIDa backfill() declares both or neither of source and pages, or input with no scope
X_STEP_NOT_RESOLVABLEthe step is not an unknown once outcome an operator can resolve
X_JOB_ROLLUP_INVALIDa rollup declaration cannot be run
X_JOB_REFRESH_VIEW_INVALIDa refreshView declaration names no materialized view it can refresh
X_SUBJECT_TABLE_UNDECLAREDa table reaches the declared subject and defineSubject gives it no treatment
X_SUBJECT_TREATMENT_INVALIDa defineSubject treatment cannot be carried out
X_SUBJECT_CYCLEthe subject erase has no deletion order
X_LOCK_NOT_ACQUIREDwithLock could not take the lock within its wait bound
X_LOCK_LOSTa lock withLock held expired before its work finished
X_LOCK_STORE_MISSINGwithLock found no lease store to hold the lock in
X_LEDGER_UNBALANCEDa ledger posting does not sum to zero in every currency
X_LEDGER_ENTRY_INVALIDa ledger entry is not a whole-minor Money amount on a named account
X_PERSONAL_DATA_UNERASEDa subject erase would leave a personalData() column of a reached table
X_PERSONAL_DATA_UNREACHEDan entity carries personalData() columns no declared subject reaches
X_LEDGER_POSTING_CONFLICTa ledger posting key is already stored with other entries

Backfills

Seven codes because each sends the reader somewhere different. Full walkthrough: Migrations and backfills.

CodeMeans
X_BACKFILL_PENDINGa declared backfill has never completed
X_BACKFILL_APPLIEDthe ledger already holds a completed pass
X_BACKFILL_ENVIRONMENTthe backfill is not declared for this environment
X_BACKFILL_MIGRATION_PENDINGthe migration this backfill requires is not applied
X_BACKFILL_RUNNINGa pass under this name is already live
X_BACKFILL_STALLEDthe sweep ended with rows its own count still matches
X_BACKFILL_UNKNOWNno declaration carries this backfill name

Outbound webhooks

webhook() is a job factory, so a delivery ends on one of these eight — every one thrown inside a worker, where ROLE=worker opens no HTTP port, so none of them ever answers a request. The INBOUND pair is X_WEBHOOK_SIGNATURE_INVALID and X_WEBHOOK_SIGNATURE_STALE under HTTP, and both are 401.

The retry classification is what the split is for, and all eight are listed in registerErrorRetry rather than left to the default: classifyThrown reads an unregistered code as UNCLASSIFIED, which spends a delivery's whole retry policy re-proving that a 404 endpoint is still a 404.

ClassificationCodes
retryableX_WEBHOOK_DELIVERY_FAILED
retry-afterX_WEBHOOK_DELIVERY_THROTTLED
terminalthe other six

No secret and no signature reaches a cause, a fix or a meta, and a URL is redacted to origin + path — several senders in the wild put a token in the query string, and all three fields reach the log store and the dead-letter row.

CodeMeans
X_WEBHOOK_ENDPOINT_UNKNOWNno endpoint carries this id
X_WEBHOOK_ENDPOINT_INVALIDthe endpoint cannot be delivered to as declared
X_WEBHOOK_ENDPOINT_DISABLEDthe endpoint takes no deliveries
X_WEBHOOK_EVENT_UNKNOWNno event carries this id
X_WEBHOOK_EVENT_INVALIDthe event cannot be signed as declared
X_WEBHOOK_DELIVERY_FAILEDthe endpoint did not accept the delivery
X_WEBHOOK_DELIVERY_THROTTLEDthe endpoint asked for the delivery later, and said when
X_WEBHOOK_DELIVERY_REJECTEDthe endpoint refused the delivery in a way a retry cannot change

Exports

exportRows() is a job factory too, and both its codes refuse the DECLARATION rather than the data — the same row() over the same page answers the same way on every attempt, so both are terminal.

CodeMeans
X_EXPORT_ROW_INVALIDrow() answered something the declared columns do not carry
X_EXPORT_PART_TOO_LARGEone page encoded to more bytes than a part may hold

Realtime

CodeMeans
X_SOCKET_UNAUTHENTICATEDthe sync upgrade carried no credential this app accepts
X_SOCKET_AUTH_UNAVAILABLEthe sync node could not decide who a connecting socket is
X_TOPIC_FORBIDDENthe actor may not subscribe to this topic
X_SUBSCRIPTION_LIMITsocket, actor, tenant or node hit its subscription cap
X_FRAME_RATE_LIMITone socket sent frames faster than this node will route them
X_SUBSCRIPTION_ID_TAKENa subscribe frame reused a sid this socket already holds
X_PROTOCOL_VERSIONclient and sync node disagree on the wire protocol
X_CURSOR_STALEthe resume LSN is outside the change buffer
X_REBASE_CONFLICTa local mutation could not be rebased
X_TRANSPORT_UNAVAILABLEthe fanout bus is unreachable
X_TRANSPORT_PROTOCOLthe bus does not speak the protocol this build speaks
X_REPLICATION_FAILEDthe replication connection was refused
X_REPLICATION_PROTOCOLthe WAL stream cannot be decoded
X_REPLICATOR_SLOT_HELDanother replicator already owns this database
X_LIVE_CLIENT_MISSINGretired in 21.0.0 (no LiveClient to register; see X_REALTIME_UNINSTALLED): a realtime hook ran in a browser with no LiveClient registered
X_LIVE_SERVER_RENDERa browser-only live operation ran during a server render
X_QUERY_NOT_SUBSCRIBABLEretired in 21.0.0 (liveHookFor was deleted; useQuery reads any query): a hook was bound to a query that is not declared live
X_LIVE_ROW_UNIDENTIFIEDa live query returned a row with no id
X_LIVE_REPLICA_IDENTITYa replicated table has no replica identity
X_LIVE_QUERY_UNKNOWNno live query is registered under the name a subscribe frame asked for
X_REALTIME_UNINSTALLEDa realtime hook ran in an island bundle that never installed realtime
X_SYNC_UNCONFIGUREDa live hook needed the page socket and no sync target was configured
X_RECORD_REJECTEDa row reached the record store in a shape it cannot hold
X_LOCAL_STORE_UNAVAILABLEthe page's durable store could not open
X_CHANNEL_DECLARATION_INVALIDa channel() declaration cannot route its rows
X_REALTIME_TOPOLOGYa sync node boots on a real database with no reachable change feed
X_REPLICATION_TLSthe replication connection failed TLS
X_SOCKET_ORIGIN_REFUSEDthe websocket upgrade came from another origin
X_OFFLINE_QUEUE_ABANDONEDa write was queued after its page changed principal
X_SOCKET_LIMITone principal holds too many sockets on this node
X_REALTIME_PRODUCER_CONFLICTtwo kinds of producer carry one table on the change bus
X_MUTATION_PATH_UNFILLEDa pinned action's :param had no value in the write's input
X_DEVICE_OFFLINEno socket is open for the device a request addressed
X_DEVICE_REQUEST_TIMEOUTa device did not answer a request before its deadline
X_DEVICE_FRAME_TOO_LARGEa device socket frame is over the framework frame limit
X_CHANNEL_CATCHUP_POLICY_MISMATCHa channel's catch-up read decides with another policy
X_REPLICATION_SLOT_INVALIDATEDthe replication slot was invalidated
X_REPLICATION_SLOT_RECREATEDthe replication slot was recreated
X_OFFLINE_QUEUE_FULLthe offline queue is full

Cache

CodeMeans
X_CACHE_TAG_UNKNOWNa tag no entity declared
X_CACHE_TOO_LARGEone entry exceeds the tier's byte budget
X_CACHE_DRIVER_UNAVAILABLEa tier's backing store is missing
X_CACHE_TTL_INVALIDa cache TTL that is not a positive number of milliseconds
X_CACHE_LIMIT_INVALIDa tier is given a numeric limit outside the domain its option accepts, refused at construction. Three domains, and the refusal names which: a capacity (maxEntries, maxBytes) is a whole number greater than zero; a duration (defaultTtlMs, loadDeadlineMs, a driver's request budget) is a whole number of milliseconds greater than zero; a similarity floor is a number from 0 to 1. So finite zero, a negative, a fraction and an unsafe integer are all refused too — not only NaN and Infinity
X_CACHE_JITTER_INVALIDa TTL jitter fraction outside [0, 1)
X_CACHE_PURGE_FAILEDthe CDN refused a purge
X_CACHE_VALUE_UNENCODABLEa cached value the cache codec cannot encode

Storage

CodeMeans
X_STORAGE_CHECKSUM_MISMATCHbytes do not match the declared checksum
X_STORAGE_DELETE_FAILEDthe object could not be deleted
X_STORAGE_LIST_FAILEDthe objects could not be listed
X_STORAGE_QUARANTINEDthe object is still in quarantine
X_STORAGE_DISK_UNKNOWNno disk with that name is configured
X_STORAGE_NOT_FOUNDno object at that key
X_STORAGE_PATH_UNSAFEobject key escapes its prefix
X_STORAGE_TOO_LARGEpayload exceeds the upload size limit
X_STORAGE_TYPE_REJECTEDcontent type is not allowed for this upload
X_STORAGE_URL_INVALIDsigned URL does not match its signature
X_STORAGE_URL_UNVERIFIABLEnothing can check the signature — no verifier was supplied
X_STORAGE_URL_EXPIREDsigned URL is past its expiry
X_STORAGE_ORG_MISMATCHobject key belongs to another org
X_STORAGE_UPLOAD_FAILEDthe signed upload was refused
X_STORAGE_SECRET_DEVupload grants would be signed with the shipped development key
X_STORAGE_NOT_PENDINGthe key is not a pending upload
X_STORAGE_KEY_CONFLICTthe key collides with another key on a local or memory disk
X_STORAGE_PUT_FAILEDthe object could not be written
X_STORAGE_READ_FAILEDthe object could not be read
X_STORAGE_OBJECT_LOCKEDthe object is under retention or a legal hold
X_STORAGE_KEY_UNSHAREDobject key is outside every tenant and every shared prefix
X_STORAGE_ALREADY_PROMOTEDthe upload was already promoted onto its row
X_STORAGE_RANGE_UNSATISFIABLEthe requested byte range starts past the end of the object
X_STORAGE_OBJECT_CHANGEDthe object changed while it was being promoted
X_STORAGE_UPLOAD_SIZE_UNDECLAREDan upload grant was asked for without the size of the file
X_STORAGE_WRITE_OUTCOME_UNKNOWNa write was sent and its answer lost, and the disk could not say whether it landed
X_STORAGE_MULTIPART_UNSUPPORTEDthis disk cannot take an upload in parts
X_STORAGE_UPLOAD_UNKNOWNno open multipart upload has that id
X_STORAGE_PARTS_INVALIDthe parts named do not match the parts stored
X_STORAGE_UPLOAD_INFECTEDthe upload scanner found malware in the file
X_STORAGE_SCAN_UNAVAILABLEthe upload scanner could not give a verdict
X_STORAGE_TARGET_UNSCANNEDa targeted upload grant would bypass the upload scanner

Flags

X_FLAG_EXPIRED is the only code in the framework that is reported and never thrown: an overdue temporary flag is a debt, not an outage, so isEnabled() hands it to the configured ErrorReporter as a warning (rate-limited to one report per key per hour) and still answers its targeting. Everything else here fails at declaration time.

CodeMeans
X_FLAG_DUPLICATEtwo flags were declared with the same key
X_FLAG_EXPIREDa temporary flag is past its expiry and is still being evaluated
X_FLAG_EXPIRY_INVALIDa temporary flag has no usable expiry date
X_FLAG_SUBJECT_REQUIREDa flag decides by a subject the evaluation context does not carry
X_FLAG_TARGETING_INVALIDflag targeting is out of range or malformed
X_FLAG_UNKNOWNno flag is declared under this key

Routes, render and budgets

CodeMeans
X_ROUTE_MODE_INVALIDrender mode not allowed on this surface, or not a render mode at all
X_ROUTE_OFFLINE_MISSINGthe route's offline strategy is missing or contradictory
X_ROUTE_META_MISSINGrequired metadata missing
X_ROUTE_UNNORMALIZEDa route was registered without defineRoute
X_ROUTE_DUPLICATEtwo route files resolve to one URL
X_ROUTE_FILE_INVALIDa route file is not named for its surface
X_STORAGE_UNWRITABLEthe storage disk this process needs cannot be written to
X_ROUTE_LOAD_INVALIDa route declared a load that is not a function
X_ROUTE_LOAD_FAILEDa route's load threw while resolving its data
X_ROUTE_STATUS_INVALIDa route answered a status a rendered page cannot carry
X_SURFACE_BOUNDARYa surface imported across the hard boundary
X_BOUNDARY_SITE_TO_APPsite/ imported app/
X_BOUNDARY_APP_TO_APIapp/ imported api/ at runtime
X_BOUNDARY_ROUTE_TO_DBa route touched the database
X_BOUNDARY_SERVICE_TO_HTTPa service imported HTTP
X_BOUNDARY_SHARED_LEAFshared/ imported a surface
X_ADMIN_FLATTENER_VIOLATIONa production @ultimat3/admin file read $meta or called $describe() directly
X_CONFIG_IMPORT_OUTSIDE_LOADERa file other than packages/cli/src/app-config-load.ts imports an app's app.config.ts
X_BUDGET_EXCEEDEDa route blew its JS budget
X_ISLAND_INVALIDan island declaration cannot become a client entry
X_ISLAND_PROPS_INVALIDan island was handed props it may not receive
X_ISLAND_NOT_HYDRATEDa page renders an island nothing would boot
X_BUDGET_UNMEASUREDa route declares a budget the build never measured
X_LIVE_ROUTE_NO_ISLANDa route reads live rows and boots nothing that could receive them
X_PRERENDER_FAILEDa prerendered path threw during build
X_STYLES_GLOBAL_MISSINGa surface renders documents whose CSS defines no :root custom properties
X_ASSET_MISSINGa page names a site asset the app does not have
X_ROUTE_POST_INVALIDa page route's post binding cannot be mounted
X_ROUTE_NAVIGATION_INVALIDa route's navigation is not 'prefetch', 'document', 'modal' or { modal: true, prefetch: 'intent' }, or its surface has no client navigation
X_NAVIGATION_MODAL_PATH_INVALIDopenModal was given something that is not a path of this origin

SEO

CodeMeans
X_SEO_META_MISSINGa site/ route is missing required metadata
X_SEO_META_TOO_LONGtitle or description exceeds what results render
X_SEO_DUPLICATE_METAtwo routes share a title or description
X_SEO_CANONICAL_MISMATCHcanonical URL does not match the route path
X_LD_INVALIDJSON-LD node is missing a required schema.org field
X_SITEMAP_TOO_LARGEsitemap exceeds the 50,000-entry limit
X_IMAGE_QUERY_INVALIDa minted image URL's ?w=/?q= value is present but unusable
X_SEO_LINK_INVALIDa route meta link is unsafe or would fetch nothing
X_SITEMAP_ENTRY_INVALIDa sitemap entry carries a lastmod or a locale the sitemap cannot write
X_SEO_LLMS_DESCRIPTION_MISSINGa page listed in llms.txt has no description
X_SEO_OG_IMAGE_CONFLICTa route meta og declares both image and capture

PWA and build skew

CodeMeans
X_PWA_NO_OFFLINE_FALLBACKpwa.offline.fallback is not set, or no route serves it
X_PWA_ICON_MISSINGno source icon to generate from
X_PWA_MANIFEST_INVALIDthe generated web manifest failed validation
X_SW_SCOPE_INVALIDthe service-worker scope cannot serve the routes it precaches
X_BUILD_ID_MISSINGno immutable build ID
X_PWA_STRATEGY_EXHAUSTEDa caching strategy had no cache, no network and no fallback
X_PWA_SYNC_FLUSH_FAILEDthe background-sync outbox flush was rejected
X_PWA_SYNC_INCOMPLETEthe background-sync outbox flush left mutations queued
X_PWA_VAPID_KEY_MISSINGno VAPID key pair for push
X_PWA_VAPID_KEY_INVALIDthe VAPID key pair is malformed or not a pair
X_PWA_PUSH_UNCONFIGUREDpush is not configured in this process
X_PWA_PUSH_FAILEDthe push service did not accept the message, and may later
X_PWA_PUSH_REJECTEDthe push service refused the message and will refuse it again
X_PWA_PUSH_PAYLOAD_TOO_LARGEthe push message does not fit one 4096-byte record
X_PWA_PUSH_SUBSCRIPTION_INVALIDthe push subscription is not one a browser produced
X_PWA_PUSH_HOST_UNLISTEDthe push endpoint is not on a push service this app sends to

i18n, money, time

CodeMeans
X_LOCALE_UNSUPPORTEDlocale is not in the supported set
X_CATALOG_MISSING_KEYSa catalog is missing keys used in source
X_CATALOG_UNREGISTEREDa shipped catalog never reached the runtime registry
X_CATALOG_INVALIDa catalog entry is malformed
X_CATALOG_SLOT_MISMATCHtwo locales define one key with different interpolation slots
X_CATALOG_UNTRANSLATEDa locale still carries the reference locale's value
X_CURRENCY_UNKNOWNcurrency code not in the currency table
X_CURRENCY_MISMATCHtwo Money values in different currencies
X_CURRENCY_INVALIDa registerCurrency declaration that cannot become a currency
X_CURRENCY_REDEFINEDone currency code registered twice with different meanings
X_MONEY_NOT_INTEGERa Money.minor that is not an integer
X_MONEY_SCALE_INVALIDa Money.scale that is not usable — either the exponent itself, or the one two operands would have to meet at
X_ALLOCATION_INVALIDsplit ratios or part count are unusable
X_RATE_MISSINGno FX rate for the pair
X_TIMEZONE_INVALIDnot an IANA zone
X_INSTANT_INVALIDnot a parseable instant
X_DURATION_INVALIDnot a parseable duration
X_CRON_INVALIDnot a parseable cron expression
X_SCHEDULE_INVALIDa wall-clock field is out of range
X_DST_AMBIGUOUSthe local time occurs twice
X_DST_NONEXISTENTthe local time does not exist
X_LOCALE_INVALIDnot a well-formed BCP 47 tag
X_CRON_NOT_DESCRIBABLEa valid cron expression describeCron has no vocabulary for
X_MONEY_INPUT_INVALIDa typed amount could not be read in this locale
X_I18N_FAMILY_INCOMPLETEa select or ordinal family has no _other
X_MONEY_NOT_DECIMALa fromDecimal input that is not a plain decimal string

Mail

CodeMeans
X_MAIL_LOCALE_MISSINGsend() was called without a locale
X_MAIL_TEMPLATE_UNKNOWNno mail is registered under that id
X_MAIL_DUPLICATEtwo mails claim the same id
X_MAIL_ADDRESS_INVALIDan envelope address could restructure the SMTP command line
X_MAIL_TEXT_MISSINGthe rendered mail has no plain-text part
X_MAIL_DRIVER_UNAVAILABLEno mail driver is configured
X_MAIL_CREDENTIAL_MISSINGthis deployment configured no mail transport
X_MAIL_HEADER_INVALIDa header value carries a line break
X_MAIL_SEND_FAILEDthe mail transport refused the message
X_MAIL_TRANSFORM_FAILEDthe app mail transform threw or returned no message
X_MAIL_EVENT_UNVERIFIEDa delivery notification is not signed by its provider
X_MAIL_EVENT_INVALIDa delivery notification is not a shape this receiver reads
X_MAIL_EVENT_PROVIDER_UNREACHABLEan SNS endpoint the receiver needed did not answer
X_MAIL_KEY_MISSINGa mail rendered a key or slot with no value in its locale
X_MAIL_PREVIEW_INVALIDa mail's declared preview fails its own input schema
X_MAIL_PREVIEW_MISSINGthis mail declares no preview

Notifications

notifier() is a job factory — one queue row and one step trace for the whole fan-out, with every recipient a durable step. Five of the seven codes are the app's own DECLARATION, one is somebody else's server and one is another attempt of the same run, which is what decides the statuses: the five are 500, X_NOTIFY_DELIVERY_FAILED is 502 and X_NOTIFY_DELIVERY_HELD is 409. That row is chosen for the day a notifier is invoked in a request rather than a job, and the asymmetry decides it — a wrong 502 costs nothing, and a wrong 500 pages the on-call for an email provider's outage, because stages.ts reports every status >= 500 to the error monitor.

Three of them are raised at notifier(...), while the app's modules load, so they fail the boot rather than a run: X_NOTIFY_CHANNELS_EMPTY, X_NOTIFY_CHANNEL_DUPLICATE, X_NOTIFY_DIGEST_UNSUPPORTED. The other four are raised inside the run.

CodeMeans
X_NOTIFY_CHANNELS_EMPTYthe notifier declares no channels
X_NOTIFY_CHANNEL_DUPLICATEtwo deliveries share one channel name
X_NOTIFY_DIGEST_UNSUPPORTEDa digest window is declared on a bulk channel
X_NOTIFY_FANOUT_TOO_WIDEthe audience is larger than one run may fan out to
X_NOTIFY_STORE_MISSINGa channel needs a store nothing installed
X_NOTIFY_DELIVERY_FAILEDa channel did not accept the delivery
X_NOTIFY_DELIVERY_HELDanother attempt holds this delivery
X_NOTIFY_PUSH_DEVICE_GONEthe push provider says a device token is dead
X_NOTIFY_PUSH_PROVIDER_REFUSEDAPNs or FCM refused a push for good
X_NOTIFY_PUSH_MESSAGE_INVALIDa data-only push carries more than an id
X_NOTIFY_SMS_TRANSPORT_MISSINGan SMS was sent with no SmsTransport installed
X_NOTIFY_SMS_NUMBER_INVALIDan SMS number is not E.164

MCP and AI

CodeMeans
X_UI_SHOT_ROUTE_UNKNOWNa ui.* tool (ui.shot, ui.inspect, ui.interact) was asked for a path no route in this app answers
X_UI_SHOT_ROUTE_UNBUDGETEDa ui.* tool (ui.shot, ui.inspect, ui.interact) refused a route that declares no budget.js
X_UI_INTERACT_STEPS_INVALIDa ui.interact step list is over its bounds or malformed
X_UI_INTERACT_SECRET_FIELDui.interact refused to type into a password field
X_UI_INTERACT_LEFT_APPa ui.interact step navigated off the dev server origin
X_UI_INTERACT_STEP_FAILEDa ui.interact step raised a scraping error
X_UI_DIFF_PATH_OUTSIDEui.diff was handed a path that does not resolve inside .x/shot/
X_UI_DIFF_FILE_MISSINGui.diff was handed a capture that is not on disk
X_UI_DIFF_SIZE_MISMATCHui.diff was handed two captures of different sizes
X_MCP_TOOL_UNKNOWNno such tool for this caller
X_MCP_ARGS_INVALIDtool arguments failed the input schema
X_MCP_SCOPE_DENIEDthe connection's token does not carry the tool's scope
X_MCP_QUERY_REJECTEDdb.query was not given one read-only statement
X_MCP_NOT_BRANCH_DBdb.migrate was aimed at a database that is not a branch
X_MCP_PROTOCOLthe MCP handshake or auth is wrong
X_MCP_TOOL_UNDECLAREDdefineAppMcp lists a primitive that declares no MCP exposure
X_MCP_TOOL_UNSAFEan MCP tool declares no policy
X_MCP_TOOL_DUPLICATEtwo primitives project to one MCP tool name
X_MCP_RESOURCE_DUPLICATEtwo resources claim one MCP resource URI
X_MCP_SCOPE_UNKNOWNdefineAppMcp scopes a tool this server does not project
X_MCP_SCOPE_CONFLICTtwo scopes claim one MCP tool
X_MCP_APP_UNMOUNTEDthe app's MCP endpoint is exposed in config and nothing can be mounted
X_MCP_RATE_LIMITEDthe caller has spent its allowance for this request's class
X_MCP_BODY_TOO_LARGEone MCP message is larger than the transport holds
X_AI_BUDGET_EXCEEDEDa model call would exceed its budget
X_AI_GATEWAY_MISSINGan llm() action ran with no gateway installed
X_AI_PROMPT_VERSIONprompt version or slots are wrong
X_AI_PROVIDER_UNAVAILABLEthe model provider is unreachable
X_AI_MODEL_UNKNOWNa model id the app never registered (the framework registers none since 25.0.0)
X_AI_PROMPT_SECRETa Secret was about to be rendered into a prompt
X_LLM_STREAM_INVALIDa streamed answer failed its output schema, and a stream cannot repair
X_AGENT_MAX_TURNSan agent hit its turn ceiling without answering
X_AGENT_TOOL_UNEXPOSEDan agent lists a tool that is neither in-process nor an MCP-exposed action
X_HIVE_EMPTYa hive() split into zero members, so the fan-out ran nothing
X_AI_KEY_MISSINGthe provider API key is not set
X_AI_REQUEST_INVALIDthe provider would reject this request
X_LLM_OUTPUT_INVALIDstructured output failed its schema on the answer and on the repair turn
X_LLM_REFUSEDthe model declined the request
X_LLM_TRUNCATEDthe answer hit its maxTokens ceiling before it was complete
X_EVAL_THRESHOLDan eval scored below its tolerance
X_EVAL_BASELINE_MISSINGan eval has no recorded baseline to gate against
X_EVAL_BASELINE_INVALIDa recorded baseline cannot be read
X_EVAL_MISSINGa prompt has no eval
X_EVAL_RECORDINGthe gate ran with baseline recording switched on
X_VECTOR_DIM_MISMATCHembedding dimensions differ from the store
X_VECTOR_SCOPE_WIDENEDa derived vector scope tried to leave its tenant
X_AI_EMBEDDER_INVALIDan Embedder returned fewer vectors than texts it was given
X_MCP_GROUP_UNKNOWNdefineAppMcp groups a tool this server does not project
X_MCP_GROUP_CONFLICTtwo resource groups claim one MCP tool
X_MCP_SURFACE_INVALIDthe MCP meta surface is declared inconsistently
X_MCP_LIST_PARAMS_INVALIDa tool's listParams names a key its own input does not accept
X_MCP_OAUTH_INVALIDthe MCP oauth block cannot be published as protected-resource metadata
X_MCP_IDEMPOTENCY_KEY_SHADOWEDan idempotent action's input declares idempotencyKey, the MCP argument reserved for the idempotency key
X_MCP_SURFACE_OVER_BUDGETan MCP surface an agent reads is larger than the app's budget for it
X_MCP_PATH_DUPLICATEtwo MCP endpoints claim one path
X_VECTOR_UNSCOPEDa vector store was read with no tenant bound inside an org request
X_MCP_SCOPE_UNCOVEREDan MCP tool is covered by no scope in the scopes map
X_AI_CONTENT_UNSUPPORTEDan image or document block the role, model or wire format cannot take
X_MCP_CONFIRMATION_PENDINGa gated MCP tool call waits for a person to approve it
X_MCP_CONFIRMATION_EXPIREDan MCP confirmation expired before it was used or decided
X_MCP_CONFIRMATION_REJECTEDa person rejected this MCP tool call
X_MCP_CONFIRMATION_DECIDEDan MCP confirmation was already decided
X_MCP_CONFIRMATION_UNKNOWNno MCP confirmation has that id
X_MCP_CONFIRMATION_TOOL_UNKNOWNmcpConfirmations gates a tool this server does not project
X_MCP_CONFIRMATION_CONTESTEDidentical concurrent MCP calls kept racing one confirmation
X_MCP_CONFIRMATION_ARGUMENTS_MISMATCHan MCP confirmation approval did not carry the arguments the agent sent
X_AI_MODEL_UNRESOLVEDa model call named no model
X_AGENT_TOOL_LOOPan agent repeated one tool call with one result and was stopped
X_AGENT_DEADLINEan agent ran past its declared deadline and was stopped
X_LLM_TOOL_ARGUMENTS_INVALIDa finished turn called a tool with arguments that are not JSON
X_AGENT_TRANSCRIPT_INVALIDan agent was asked to continue from a transcript it cannot read
X_AI_PROVIDER_UNEXPECTEDa provider ended a turn with an unknown reason and an incomplete answer
X_MCP_EFFECT_UNDECLAREDan MCP tool on a meta-split surface declares no effect
X_MCP_EFFECT_CONFLICTa read-only MCP tool declares an effect
X_MCP_WRONG_TOOLa meta-split action was called through the wrong dispatcher
X_MCP_USER_CONFIRMATION_REQUIREDa delete_resource commit did not carry confirmed_by_user: true
X_AGENT_TOOL_UNDECLAREDan agent run offered a tool its declaration does not list
X_AGENT_CONTEXT_EXHAUSTEDan agent's next request would not fit its model's context window
X_AI_SCRIPT_EXHAUSTEDa scriptedProvider was called more times than it has turns
X_MCP_PROTOCOL_UNSUPPORTEDthe request names an MCP protocol version this server does not serve
X_MCP_HEADER_MISMATCHan MCP request header is absent or disagrees with the body
X_MCP_ORIGIN_REFUSEDan MCP request came from a browser page on another origin
X_EVAL_TOOL_UNDOUBLEDan agent eval called a tool with no double
X_MCP_HOST_REFUSEDan MCP request named a Host that is not this machine
X_AI_CONTEXT_OVERFLOWa provider refused a request as longer than the model context window
X_MCP_REMOTE_TOOL_CHANGEDa remote MCP server's tool no longer matches tools.lock.json
X_MCP_REMOTE_REFUSEDa remote MCP server failed or refused the call
X_MCP_JOB_TOOL_INVALIDjobTool() was declared with something it cannot run
X_MCP_RECIPE_TOOL_UNKNOWNan MCP recipe step names a tool this server does not project
X_MCP_RECIPE_EXAMPLE_INVALIDan MCP recipe step's example fails its tool's input
X_MCP_RECIPE_UNKNOWNan error links to a docs://recipes/ URI no recipe serves
X_MCP_RECIPE_URI_RESERVEDdocs://recipes/ is owned by recipes:
X_MCP_REMOTE_AUTH_REQUIREDa remote MCP server needs authorization this app does not hold
X_MCP_RECIPE_LINK_DANGLINGa recipe links to a docs://recipes/ URI no recipe serves
X_MCP_CONFIRMATION_QUORUM_PENDINGan MCP confirmation needs more approvers before the call runs
X_MCP_CONFIRMATION_EVIDENCE_INVALIDan MCP confirmation approval carries no valid signed evidence
X_MCP_CONFIRMATION_QUORUM_INVALIDmcpConfirmations approvers resolved a quorum no approver set can meet
X_MCP_CATALOG_TOOL_DUPLICATEa per-caller MCP catalog names one tool twice
X_MCP_CATALOG_UNRESOLVEDa per-caller MCP catalog could not be resolved
X_MCP_TENANT_REQUIREDan MCP call names no tenant
X_MCP_TENANT_UNRESOLVEDthe tenant of an MCP call could not be resolved
X_MCP_TENANT_INVALIDdefineAppMcp declares its tenant argument inconsistently
X_MCP_INCLUDE_EARLYinclude: 'exposed' projected before the scan registered every exposed primitive

Scraping

@ultimat3/scraping owns its codes in SCRAPE_OWNED_ERROR_CODES and borrows two (X_NOT_IMPLEMENTED, X_ENV_MISSING) — the count is not written here because nothing derives it, and a number in prose beside a list that grows is a number that goes stale; bun run manifest re-derives the owner of every code. Every one is classified retryable or terminal once, in SCRAPE_ERROR_RETRY (packages/scraping/src/errors.ts), rather than re-decided by whichever catch saw it — a scraper's whole operational question is "was that the site being slow, or the site being different?"

The rule, stated once: retryable means the same code, run again, has a real chance of a different answer. Transport, budget and liveness faults qualify. Anything that says "the page is not the page this scraper was written against" does not — attempt 5 hammers a site with a request that cannot succeed, and on an authenticated target that is how three wrong attempts lock an account.

Two sets override the table, in failures.ts:

SetCodesEffect
NEVER_RETRIEDX_SCRAPE_AUTH_FAILED, X_SCRAPE_PROMPT_UNANSWEREDno retry policy, backoff or recovery hook can reach them
BURNS_SESSIONX_SCRAPE_BLOCKED, X_SCRAPE_SESSION_EXPIREDthe persisted identity is discarded before the retry — a flagged profile stays flagged, so reloading it re-trips the same block every time
CodeMeans
X_SCRAPE_DRIVER_UNKNOWNno browser driver is installed for this run
X_SCRAPE_CDP_ATTACH_FAILEDthe CDP endpoint refused the attach
X_SCRAPE_BROWSER_UNREACHABLEthe browser went away mid-run
X_SCRAPE_BROWSER_MISSINGthere is no browser on this machine for the driver to launch
X_SCRAPE_PROFILE_LOCKEDanother process holds this browser profile
X_SCRAPE_HOST_BLOCKEDthe page asked for a host allowHosts does not list
X_SCRAPE_SELECTOR_MISSINGthe selector never appeared inside its window
X_SCRAPE_NOT_ACTIONABLEthe element is present and cannot be acted on
X_SCRAPE_TIMEOUTthe step exceeded its wall-clock budget
X_SCRAPE_WEDGEDthe browser stopped answering and was killed
X_SCRAPE_WATCHDOG_STOPPEDthe wedge watchdog stopped measuring and the run was ended
X_SCRAPE_PAGE_CRASHEDthe renderer process died
X_SCRAPE_OUTPUT_INVALIDthe extracted rows do not match the extract schema
X_SCRAPE_YIELD_COLLAPSEDthe run succeeded and returned far too little
X_SCRAPE_YIELD_HISTORY_MISSINGa maxDrop is declared and no history store can supply its baseline
X_SCRAPE_DOWNLOAD_TIMEOUTthe download never landed
X_SCRAPE_ROBOTS_DISALLOWEDrobots.txt disallows this path
X_SCRAPE_FIXTURE_MISSINGthe fixture driver has no recording for this request
X_SCRAPE_FIXTURE_STALEthe recording is older than the fixture max age
X_SCRAPE_REMOTE_REQUIREDthis driver needs a cdpUrl and was given none
X_SCRAPE_RECOVER_REFUSEDthe recovery hook declined to recover this failure
X_SCRAPE_SECRET_EXPOSEDan artifact would have carried a secret this run typed
X_SCRAPE_HTTP_FAILEDthe site answered the HTTP leg with a non-2xx status
X_SCRAPE_BODY_TOO_LARGEthe HTTP leg's response body ran past maxBytes
X_SCRAPE_REDIRECT_LOOPthe HTTP leg followed its hop limit of redirects without an answer
X_SCRAPE_AUTH_FAILEDthe credentials were rejected
X_SCRAPE_SESSION_EXPIREDthe restored session is no longer valid and nothing can renew it
X_SCRAPE_PROMPT_UNANSWEREDa login step asked for a code and nothing answered
X_SCRAPE_CAPTURE_INVALIDthe capture names a framing no picture can be taken with
X_SCRAPE_BLOCKEDthe site refused this client — the identity is spent
X_SCRAPE_KEY_INVALIDthe key chord names no key a browser can press
X_SCRAPE_EGRESS_UNSUPPORTEDthis driver cannot give the session the exit the run asked for
X_SCRAPE_EGRESS_IN_PAYLOADthe run exit carries a credential that is also in the job payload
X_SCRAPE_LAUNCH_ARGS_INVALIDthe launch options carry arguments this driver cannot hand the browser
X_SCRAPE_PDF_OPTIONS_INVALIDthe PDF request names no single page size a print engine can lay out
X_SCRAPE_PDF_ORIGIN_MISSINGpdf() has no origin to render the route on
X_SCRAPE_PDF_ROUTE_INVALIDa pdf() route is not a path on this app
X_SCRAPE_PDF_ROUTE_FAILEDthe route pdf() printed answered an error status
X_CDP_BROWSER_MISSINGno Chrome or Chromium is installed for the e2e driver to launch
X_CDP_LAUNCH_FAILEDthe browser started and never announced a DevTools endpoint
X_CDP_CALL_FAILEDthe browser refused a DevTools call
X_CDP_TIMEOUTa DevTools call did not answer inside its deadline
X_SCRAPE_PDF_BUSYevery pdf() render slot stayed busy past the queue deadline

X_NOT_IMPLEMENTED and X_ENV_MISSING are @ultimat3/core's and are documented above: the first is the honest stub the agent recovery seam throws, the second is what a declared secret with no value in the environment is — a missing environment variable, not a scraping concept needing its own code.

Admin and manifest

CodeMeans
X_ADMIN_ENTITY_UNKNOWNthe admin references an entity that does not exist
X_ADMIN_POLICY_MISSINGan admin-exposed subject has no policy
X_ADMIN_FIELD_UNSUPPORTEDa column type the admin cannot render
X_ADMIN_ACTION_DUPLICATEtwo registered admin actions carry one name
X_ADMIN_PAGE_UNGUARDEDa custom admin page declared no permissions
X_ADMIN_PAGE_PATH_INVALIDa custom admin page has an unusable or already-taken path
X_ADMIN_DENIEDthe actor may not use this admin surface
X_ADMIN_TOOL_FORBIDDENan admin MCP tool was called without permission
X_ADMIN_INVALIDan admin tool's arguments failed the resource schema
X_DEV_DASHBOARD_IN_PROD/_x was mounted outside dev
X_MANIFEST_DRIFTa committed manifest differs from the code
X_MANIFEST_STALEopenapi.json is stale
X_MANIFEST_MISSINGthe app ships no x.manifest.json at all
X_MANIFEST_BREAKINGa published contract was removed or narrowed
X_AGENTS_MD_MISSINGno AGENTS.md
X_AGENTS_MD_TOO_LARGEAGENTS.md grew past its cap
X_ADMIN_REPO_UNBOUNDan admin resource has no database handle to read rows through
X_ADMIN_FILTER_INVALIDan admin list was asked for a filter, sort or scope its resource does not derive
X_ADMIN_ACTION_NOT_APPLICABLEan admin action was run on a row its when() rule excludes
X_ADMIN_MOUNT_MISSINGan admin batch job ran in a process that never declared its admin
X_MANIFEST_FACT_INVALIDa manifest fact is a number JSON cannot write back
X_ADMIN_VIEW_WRITEan admin resource over a view entity offers a write
X_ADMIN_READ_ONLY_WRITEan admin resource over a readOnly entity offers a write

Testing

CodeMeans
X_TEST_DB_UNAVAILABLEno Postgres for the test template
X_TEST_FIXTURE_UNAVAILABLEa declared fixture has no driver in this process
X_TEST_LIVE_NODE_UPGRADE_REFUSEDthe in-process sync node refused the connection
X_TEST_LIVE_NODE_EMPTYthe in-process sync node has no live query to serve
X_TEST_FIXTURE_UNKNOWNa test requested a fixture nobody registered
X_TEST_NETWORK_OFFLINEthe test network is offline
X_TEST_NETWORK_SEALEDa test tried to reach the network
X_TEST_NONDETERMINISTICa test read wall-clock time or unseeded randomness
X_TEST_EVAL_THRESHOLDan evalTest() score fell below its threshold
X_TEST_SCHEMA_EXPECTEDa matcher expected a Standard Schema and got something else
X_TEST_LOCATOR_EXPECTEDa matcher expected a locator and got something else
X_E2E_APP_FAILEDthe app an e2e run spawned did not come up
X_E2E_EVALUATE_UNSUPPORTEDa page.evaluate() closure cannot be sent into the browser
X_E2E_EVALUATE_CAPTUREDa page.evaluate() closure named a binding the page does not have
X_E2E_EVALUATE_THREWan expression an e2e page ran threw inside the browser
X_E2E_LOCATOR_EMPTYan e2e locator matched no element
X_E2E_LOCATOR_AMBIGUOUSan e2e locator matched more than one element and was asked to click
X_E2E_SERVICE_WORKER_ABSENTno service worker took control of the page within the budget
X_TEST_JOB_EXPECTEDa matcher expected a job declaration and got something else
X_TEST_NETWORK_RACEa request raced unsealNetwork() and lost the patched fetch
X_TEST_FACTORY_TRAIT_UNKNOWNa factory was asked for a trait it does not declare
X_TEST_ISLAND_NOT_BUILTthe island build produced no chunk for the file the test named
X_TEST_ISLAND_NO_MOUNTan island chunk exports no mount function
X_TEST_ISLAND_SELECTOR_UNSUPPORTEDa selector is outside the island DOM's grammar
X_TEST_FACTORY_NOT_PERSISTEDcreate() ran with no persister installed
X_TEST_REGISTRY_LEAKa test file left a process-global registry dirty
X_SHOT_ISLAND_STATES_EMPTYa *.island.states.ts exports no defineIslandStates result
X_SHOT_ISLAND_UNPHOTOGRAPHABLEthe island never reached a state worth photographing
X_SHOT_ISLAND_UNSTUBBED_REQUESTthe component requested something no state stub answers
X_SHOT_ISLAND_MISSINGa declared picture is not on disk when the run ends
X_TEST_ISLAND_STATES_EMPTYan island state manifest declares no states
X_TEST_ISLAND_STATES_NOT_PUREan island states file imports the component, a renderer or a sibling module
X_TEST_ISLAND_STATES_MISSING_FILEan island state manifest names an island that is not on disk
X_TEST_ISLAND_STATES_UNKNOWNno island state manifest answers to that name
X_TEST_ISLAND_STATES_AMBIGUOUStwo island state manifests answer to one name
X_TEST_ISLAND_STATE_ID_INVALIDan island state id is not slug-shaped
X_TEST_ISLAND_STATE_DUPLICATEtwo island states share one id
X_TEST_ISLAND_STATE_JSON_INVALIDan island state carries a value JSON does not
X_TEST_ISLAND_STATE_CLOCK_INVALIDan island state manifest pins a clock that is not pinnable
X_TEST_ISLAND_STATE_STUB_INVALIDan island route stub is not <METHOD> <pathname>
X_TEST_POLICY_EXPECTEDa matcher expected a policy and got something else
X_TEST_OPENAPI_EXPECTEDa matcher expected an OpenAPI document and got something else
X_TEST_NUMBER_EXPECTEDa matcher expected a finite number and got something else
X_TEST_ISLAND_STATE_UNKNOWNan island state manifest declares no state with that id
X_TEST_APP_NOT_BOOTEDdescribeApp handle read before boot
X_TEST_PACE_INVALIDULTIMATE_TEST_PACE is not a number at or above 1
X_SEED_GRAPH_UNSATISFIEDno generated row satisfies a table
X_E2E_A11Y_VIOLATIONa page fails the accessibility audit
X_SEED_GRAPH_ENTITY_UNKNOWNa seed plan names an entity its writer was not given
X_TENANT_LEAKanother tenant's row reached a call's output or effect
X_TENANT_WRITE_CROSSEDa call by one tenant changed another tenant's row
X_JOB_CRASH_DIVERGEDa job run killed at a step boundary made an effect a different number of times than a clean run
X_JOB_SIM_INVARIANTa simulateJobs seed broke the invariant the test stated
X_JOB_SIM_NONDETERMINISTICone simulateJobs seed produced two different traces
X_DRILL_FAILEDa fault drill property did not hold
X_DRILL_SERVICE_MISSINGa fault drill needs a service that is not there
X_SUBJECT_ERASE_INCOMPLETEa value of the subject survived subjectErase
X_QUERY_UNINDEXEDa statement no index can serve: the planner can only scan the table
X_QUERY_SORT_UNSERVEDa limited read sorts its rows: no index serves the order
X_QUERY_SCALES_WITH_ROWSa statement shape runs once per row: its count grows with the rows seeded
X_QUERY_PLAN_UNAVAILABLEthe database could not answer a generic plan, so no statement was judged
X_CASSETTE_MISSINGa cassette replayed with no recording on disk
X_CASSETTE_UNUSEDa cassette entry was never replayed
X_CASSETTE_SECRETa cassette about to be written holds a secret value
X_CASSETTE_RECORD_REFUSEDa cassette recording was refused
X_TEST_MODULE_MOCK_UNRESTORABLEa mocked module could not be put back at the file boundary
X_EXERCISE_SETUP_UNSEALEDan exercise setup let a host through the seal
X_JOB_CRASH_UNBOUNDEDa crash proof needs more kill points than its bound
X_EXERCISE_ACTOR_USER_UNSEATEDthe exercise pass could not seat its actor's x_users row
X_EXERCISE_INPUT_THREWan exercise entry's input threw
X_TEST_SCOPE_UNINSTALLEDa test double was made in a process the testing preload did not set up
X_TEST_STUB_UNANSWEREDa stubbed primitive was called before any answer was scripted
X_TEST_STUB_TARGET_UNSUPPORTEDstub() was handed something that is not an action, llm(), query or job
X_TEST_EXPECTED_INPUT_INVALIDan assertion named an input its primitive's schema rejects
X_TEST_RUN_JOBS_EXPECTEDtoHaveEnqueued was handed something other than the runJobs fixture
X_TEST_MAIL_EXPECTEDtoHaveSentMail was handed something other than the mail fixture
X_TEST_ADAPTER_PORT_UNSWAPPABLEswapAdapter() was named a port it cannot swap for one test
X_TEST_FACTORY_INVALIDa factory builds a row its own entity refuses

UI

CodeMeans
X_TOKEN_UNKNOWNdesign token role does not exist
X_THEME_INVALIDtheme is not light or dark
X_UI_RUNTIME_MISSINGa host capability @ultimat3/ui needs is absent
X_UI_FORM_PATH_INVALIDa form control name is not a usable field path
X_UI_CONTRAST_INSUFFICIENTa brand palette pairing does not meet WCAG 2.2 AA
X_UI_QR_CAPACITYtext is too long for a QR code this component can draw
X_UI_INVALID_VALUE@ultimat3/ui received a value it cannot use

CLI and verify

CodeMeans
X_SOURCE_HEADER_MISSINGa shipped source file opens with no header comment
X_SOURCE_HEADER_OUT_OF_CONTRACTa shipped source file's leading header is outside the 1–4 line responsibility contract
X_SOURCE_HEADER_PIN_STALEa source-header pin is above the number of violations the tree now holds
X_SOURCE_HEADER_UNSCANNEDthe source-header guard read no shipped source file
X_DEPENDENCY_NOT_ALLOWLISTEDa workspace manifest declares an external dependency with no allowlist row
X_DEPENDENCY_ALLOWLIST_STALEan allowlist row names a dependency no manifest declares
X_DEPENDENCY_UNSCANNEDthe dependency guard read no workspace manifest, or no manifest declared a dependency
X_DEPENDENCY_RANGE_CONFLICTa root and workspace dependency pair has no shared version, or a range cannot be parsed
X_CLI_UNKNOWN_COMMANDnot a command
X_CLI_BAD_FLAGflag or positional rejected
X_CLI_UNEXPECTEDthe CLI itself failed
X_FRAMEWORK_SCHEMA_FAILEDa framework table could not be created at boot
X_VERIFY_FAILEDone or more verify steps failed
X_TYPECHECK_FAILEDtsc failed
X_LINT_FAILEDBiome failed
X_TEST_FAILEDa test type failed
X_TEST_NO_FILESthe test selection matched no files
X_TEST_SHARD_FAILEDa test shard exited non-zero
X_PACKAGE_UNREFERENCEDa published workspace is not in the root tsconfig build graph
X_VERIFY_SUITE_VANISHEDa step the committed floor requires had nothing left to check
X_FILE_TOO_LONGa source file is over 500 lines
X_GUARD_INVALIDa file in guards/ exports no usable guard
X_GUARD_FAILEDan app guard threw instead of returning findings
X_GUARD_FINDING_INVALIDan app guard's finding breaks the error contract
X_PACKAGE_SHAPEa workspace package is missing a contract file
X_ERROR_FIX_INVALIDan error's fix line is not a runnable instruction
X_ERROR_FIX_PATH_MISSINGan error's fix line cites a file this repository does not have
X_ERROR_CODE_UNDOCUMENTEDa shipped error code has no row in the error reference
X_ERROR_CODE_UNREGISTEREDthe error reference documents a code no package registers
X_ERROR_CODE_UNTHROWNa registered error code is constructed by nothing and UNTHROWN_CODES in packages/cli/src/unthrown-codes.ts does not list it
X_ERROR_CODE_UNRESOLVEDan error code is written as a name this repository cannot resolve
X_ERROR_RENDER_UNSAFEan error factory builds its cause: or fix: from an unknown in a way that can throw
X_ERROR_STATUS_MISSINGa framework code has no row in @ultimat3/http's closed status table
X_ERROR_STATUS_BACKLOG_STALEa pin in the status-table ratchet has been resolved and left behind
X_ERROR_STATUS_UNKNOWN_CODEthe status table maps a code no package declares
X_CATALOG_KEY_UNREACHABLEthe framework catalog defines a key no framework source can reach
X_CATALOG_CARRIER_UNSCANNEDthe carried-key rule found no key the framework hands to t() through a constant or a property
X_CLI_FLAG_UNREADa command declares a flag no code reads
X_PUBLISH_LIST_INCOMPLETE.github/workflows/release.yml does not publish every publishable workspace — or contains no npm publish command at all
X_PUBLISH_LIST_UNKNOWNa publish step names a workspace this tree cannot publish — no such package, or a private one
X_BENCH_CLAIM_STALEa realtime capacity figure in CLAUDE.md is not the figure scripts/bench/results/*.json carries
X_BENCH_URL_REQUIREDthe restart benchmark's client shard was started without --url
X_BENCH_STREAM_CLOSEDthe restart benchmark's stdout closed before the line it was waiting for
X_BENCH_RUN_TOO_SHORThttp-hello was asked for a run under 10 seconds
X_BENCH_RUN_FAILEDa bench run produced no publishable figure
X_WIKI_TABLE_MALFORMEDa markdown table in wiki/ does not render as a table
X_FRAME_DOCS_STALEwiki/Realtime.md and FRAME_KINDS disagree
X_CHART_VERSION_STALEdocker/helm/Chart.yaml's version or appVersion is not the version every publishable workspace is stamped at
X_IMAGE_LIBC_MISMATCHthe stage, stage index or external image any Dockerfile in the tree copies its runtime artifact from links a different C library than the runtime provides
X_IMAGE_GUARD_MISSINGthe final stage of any Dockerfile in the tree declares an ENTRYPOINT that no RUN in that same stage executes
X_IMAGE_SECRET_UNIGNOREDa *.dockerignore in this tree excludes .env and .npmrc but not .secrets.key, or a Dockerfile has no ignore file at all — no <Dockerfile>.dockerignore, no .dockerignore at or above it
X_IMAGE_CONTENT_UNIGNOREDa *.dockerignore in this tree does not exclude **/*.test.ts, **/*.test.tsx or the anchored docs, or a later ! line undoes one
X_APP_PACKAGE_INVALIDthe app's package.json has no usable name/version — the manifest never fabricates app@0.0.0, because its version is the compatibility gate
X_BUILD_FAILEDx build failed
X_BUILD_ENTRY_MISSINGthe build target's entry file is not in the app
X_DEPLOY_FAILEDa deploy step failed
X_RUNTIME_DRIVER_SPLITthe ambient driver is not the one this process serves
X_SETUP_INSTALL_FAILEDbun install failed during bun run setup
X_RELEASE_VERSION_SKEWa workspace is not at the lockstep version
X_TRUST_PUBLISHER_MISSINGa published package has no OIDC trusted publisher
X_REGISTRY_BOOTSTRAP_OWEDa publishable workspace is absent from the registry — its packument answers 404
X_REGISTRY_VERSION_BEHINDthe registry holds the package but not the version this tree stamps
X_REGISTRY_UNATTESTEDthe stamped version is on the registry with no dist.attestations, published by a person
X_REGISTRY_LATEST_DRIFTthe stamped version is on the registry and attested, but npm's default latest is not it
X_REGISTRY_UNREACHABLEthe registry did not answer — timeout, non-2xx, or a 200 that is not a packument
X_TRUST_PUBLISHER_FAILEDattaching a trusted publisher failed
X_TRUST_2FA_REQUIREDnpm refused the trust change on the credential's class
X_TRUST_ENVIRONMENT_EMPTY--environment was given as an empty string
X_TRUST_NPM_TOO_OLDthe npm on PATH has no trust subcommand
X_GENERATE_CONFLICTa generator would overwrite a file
X_GENERATE_JSON_INVALIDa generator's own merge: 'json' output does not parse as a JSON object
X_SCAFFOLD_PATH_ESCAPEa generated path resolves outside the scaffold sandbox
X_NOT_IMPLEMENTEDa planned command, or a driver whose remote half is unwritten
X_ERROR_CODE_UNKNOWNno package registered this error code
X_DECLARATION_UNKNOWNno declaration with this name is registered
X_SEED_ENVIRONMENTthe seed's tier is not one this environment runs
X_JOB_UNKNOWNthe queue holds no job with this id
X_FIX_TARGET_UNKNOWNthe named file is not one of the app's source files
X_ROADMAP_FILE_MISSINGdocs/idea/14-roadmap.md does not exist, so no status or artifact can be checked
X_ROADMAP_STATUS_MISSINGa milestone has no row, or its row's status cell holds neither ✅ nor 🚧
X_ROADMAP_MILESTONE_UNVERIFIEDa milestone the table marks ✅ is missing a package or file its own Ships column names
X_ROADMAP_MILESTONE_UNTRACKEDa milestone row exists that REQUIRED_ARTIFACTS has no entry for, so its status marker verifies nothing
X_SCAFFOLD_OVERRIDES_EMPTYno @ultimat3/* workspace manifests were found, so the smoke app would install from the npm registry
X_REFERENCE_APP_REGRESSEDa step of a tracked app's own gate that was passing now fails — or the gate produced no step table at all
X_REFERENCE_APP_PIN_STALEa step pinned as failing in the app's expectedRed now passes
X_REFERENCE_APP_UNREFERENCEDa tracked app typechecks but the root tsconfig.json does not reference it
X_REFERENCE_APP_NO_FLOORa tracked app's x.verify.json does not cover the steps its own gate ran — the file is missing, empty, or behind
X_SCAFFOLD_GATE_REDthe freshly scaffolded app's own bun run verify went red — or printed a step table this gate cannot match against the declared steps, or reported budgets as skipped rather than green
X_SCAFFOLD_FIRST_RUN_FAILEDa first-run command failed inside a freshly scaffolded app
X_DOC_FIX_UNRUNNABLEa Fix cell of this page cannot be run as written
X_DOC_FIX_UNSCANNEDwiki/Error-Codes.md could not be read, or holds no Fix column
X_DOC_FIX_DISAGREESa Fix cell on this page names no remedy its code's throw sites register
X_DOC_FIX_DISAGREES_PIN_STALEfewer Fix cells disagree with their registered fix than the ratchet allows
X_DOC_CAUSE_ECHOES_TITLEa row of this page states its title again as its typical cause
X_DOC_COMMAND_UNKNOWNa page in wiki/ or docs/ hands the reader an x invocation this build cannot run
X_DOC_COMMAND_ALLOWANCE_STALEan entry in DOC_COMMAND_ALLOWANCES matches nothing in the tree
X_DOC_COMMAND_UNSCANNEDno page was read, so nothing was checked
X_DOC_COMMAND_PIN_STALEa pinned unresolved x citation (a page + invocation site in DOC_COMMAND_PINS) is no longer there, or a page holds one its pins do not name
X_DOC_TEST_PATH_BAREa page hands the reader bun test <path> with no leading ./
X_DOC_TEST_PATH_UNSCANNEDno page was read, so no bun test path was checked
X_TSCONFIG_PATH_MISSINGa package exports a TypeScript subpath with no row in tsconfig.base.json paths
X_TSCONFIG_PATH_STALEa tsconfig.base.json paths row names a subpath no package exports, or a file other than the one it exports
X_TSCONFIG_PATHS_UNSCANNEDno package subpath export was read, so the paths rows were checked against nothing
X_DOC_GATE_STEPS_STALEa page states how many steps x verify runs, or enumerates them, and describes a gate this build does not run
X_DOC_SETUP_COMMAND_STALEa page describes a bun run setup the scaffold does not write — a step list missing one of its steps, or a step count that is not the script's
X_DOC_SETUP_COMMANDS_UNSCANNEDthe rule read no list, or no count, or could not read binSetup() at all
X_DOC_GATE_STEPS_UNSCANNEDno page states a step count or enumerates the gate, so the rule read nothing
X_DOC_SETUP_COMMAND_STALEa page enumerating what a scaffolded app's bun run setup runs describes a script x new does not write
X_DOC_SETUP_COMMANDS_UNSCANNEDno page enumerates bun run setup's sequence, so the rule read nothing
X_DOC_CHANGELOG_SECTION_INVALIDa CHANGELOG.md section is not one section
X_DOC_CHANGELOG_UNRELEASED_BREAKINGBREAKING — entries sit under ## [Unreleased] on a tagged commit
X_DOC_MIGRATION_COUNT_STALEa wiki/Upgrading.md count is not the count of the section it names
X_DOC_MIGRATION_UNSCANNEDno row in wiki/Upgrading.md sends the reader to a single version section, so the rule read nothing
X_DOC_MIGRATION_UNPAIREDa BREAKING — line and the Upgrading entry that migrates it do not pair one-to-one
X_DOC_MIGRATION_RANGE_STALEa walkthrough cites an entry or upgrade step it has no row for
X_RELEASE_UNRELEASED_MISSINGCHANGELOG.md has no ## [Unreleased] heading, so a release has nothing to promote
X_README_EXAMPLE_UNCOMPILEDa package README.md gained a ts/tsx fence that does not compile
X_README_EXAMPLE_PIN_STALEa package's pinned failing-fence count is higher than the number that actually fail
X_README_EXAMPLE_UNSCANNEDtsc did not run over the extracted fences
X_README_SAMPLE_DRIFTthe root README.md's code sample is not the file its readme-sample marker names
X_README_FACTS_DRIFTthe root README.md's generated facts table is not what the tree says
X_PRODUCTION_APPS_DRIFTa page answering who uses Ultimate does not carry what PRODUCTION_APPS renders
X_ADOPTION_CLAIM_UNGENERATEDa published page says who uses Ultimate outside the generated production-apps block
X_PACKAGE_README_SHAPEa publishable package's README lacks, in its first 30 lines, the heading, one sentence, an install line, an example or a link to its homepage wiki page — or a README_SHAPE_PINS row exempts nothing
X_PACKAGE_KEYWORDS_MISSINGa publishable package's package.json has no non-empty keywords array
X_VERSION_STAMP_STALEa page stamps a version that is not the version this tree carries
X_VERSION_STAMP_DUPLICATEmore than one page carries a version stamp
X_VERSION_LOCKSTEP_BROKENthe publishable workspaces do not all carry one version
X_VERSION_STAMP_UNSCANNEDno workspace manifest carried a version, so there was nothing to compare against
X_COVERAGE_BELOWa package's own src/ is under the coverage floor
X_COVERAGE_PIN_STALEa package now clears its coverage pin and the pin is still there
X_COVERAGE_UNMEASUREDcoverage was read from a suite that did not measure it
X_DOC_FILE_COUNT_STALEa page states a file count for a generator that the generator no longer emits
X_DOC_FILE_COUNT_UNSCANNEDno page states a generator file count, so the rule read nothing
X_DOC_RELEASE_FACT_STALEa page states how many packages ship and the tree has a different number
X_DOC_RELEASE_FACT_UNSCANNEDno page states a package count, so the rule read nothing
X_DOC_PACKAGE_GRAPH_STALEthe dependency graph docs/architecture/01-package-map.md draws is not the one the manifests declare
X_INDEX_ORDER_UNGUARDEDan ordering assertion built on indexOf with nothing asserting the needle is present
X_INDEX_ORDER_PIN_STALEa package is pinned above the unguarded assertions it now has
X_INDEX_ORDER_PIN_UNEXPLAINEDa package is pinned with a blank reason
X_INDEX_ORDER_UNSCANNEDthe rule read nothing, so no ordering assertion was checked
X_SKIP_CLEANUP_UNREACHEDa test file resets a process-global registry from inside a .skipIf( block, where it never runs
X_SKIP_CLEANUP_UNSCANNEDthe rule read nothing, so no skipped suite was checked
X_TEST_DISCOVERY_UNSEENthe tree holds a test file the gate's test discovery cannot yield, or one outside the one convention
X_TEST_DISCOVERY_UNSCANNEDthe discovery walk read zero files, so no test-shaped file was checked
X_PROBE_DATABASE_FIXEDa test creates a database under a name that is the same on every run
X_SQL_LITERAL_COPYa module other than packages/db/src/sql.ts turns ' into '' itself
X_SQL_LITERAL_UNSCANNEDthe rule read nothing, so no copy of the escape was checked
X_BROWSER_TRANSPORT_BYPASSbrowser-reachable code opens its own connection instead of using the one seam
X_BROWSER_TRANSPORT_UNSCANNEDthe rule's fetch seam no longer calls fetch, so every bypass check is vacuous
X_BROWSER_SERVER_BARRELbrowser-reachable code imports a package's server barrel where the package publishes a browser entry
X_CHANNEL_LITERALa channel topic is spelled outside its channel() declaration
X_CHANNEL_LITERAL_UNSCANNEDthe rule's seam was not among the files scanned
X_SEAL_CALL_OUTSIDE_COREa package writes its own AES call instead of calling seal() / open()
X_SEAL_CALL_UNSCANNEDthe rule's seam was not among the files scanned
X_KEYED_HASHERan HMAC is taken with a keyed new Bun.CryptoHasher(alg, key) instead of hmac()
X_KEYED_HASHER_EXEMPT_STALEa KEYED_HASHER_EXEMPT row excuses nothing
X_INSTRUMENT_SLOT_FORBIDDENa package exports a single observer slot instead of emitting on the instrumentation bus
X_INSTRUMENT_SLOT_ALLOWANCE_STALEan INSTRUMENT_SLOT_ALLOWED row excuses nothing
X_ADAPTER_PORT_INCOMPLETEan adapter port is missing part of its contract, or a backend is swapped outside one
X_CLI_OUTBOUND_UNDECLAREDa non-test packages/cli/src file spells a host not on the allowlist
X_CLI_OUTBOUND_ALLOWANCE_STALEan allowlist row names a host the CLI no longer spells
X_PRIVATE_NAMEa private name is in a tracked file
X_PRIVATE_NAMES_UNSETthe private-name secret is missing where the names are required
X_GUARD_LOAD_FAILEDa repository guard could not load its own imports, so it checked nothing
X_BUDGET_RAISE_UNSTATEDa route's budget went up with no measured number and no reason beside it
X_BUDGET_BASE_MISSINGbudget-raises had no origin/main to compare against, and fetching it failed
X_PIN_RAISE_UNSTATEDa ratchet pin in scripts/lib/*-pins.ts is higher than at origin/main's tip with no why: on the row
X_PIN_BASE_MISSINGpin-raises had no origin/main to compare against, and fetching it failed
X_CORPUS_UNSCANNEDa whole-tree guard read fewer files than its scope's floor, or could not read part of it, or scripts/lib/workspaces.ts enumerated no publishable workspace (registry-audit, release, list-workspaces)
X_DOC_UNRELEASED_STALEa current page calls a version "unreleased" that CHANGELOG.md has dated — or, at a release commit or with [Unreleased] empty, says As of Unreleased, "not yet tagged", what the next major does, or carries a Known-Gaps `main` cell (scripts/doc-unreleased.ts)
X_DOC_UNRELEASED_PIN_STALEa page is pinned above its stale "unreleased" lines
X_LLMS_TXT_DRIFTllms.txt's generated package or wiki list differs from what it is generated from
X_GUARDS_DOC_DRIFTdocs/architecture/guards.md differs from the guard headers it is generated from
X_BOUNDARY_VIOLATIONa framework package imports one it may not under scripts/lib/tiers.ts — this repository's own tier rule, distinct from an app's X_BOUNDARY_* codes
X_DOC_PATH_DEADa published page names, in backticks, a packages/…, scripts/… or docs/… path that exists neither in this repository nor in a tracked app
X_ROOT_BIN_REINTRODUCEDthe repository root has a bin/ again (file, directory, or empty directory)
X_VERIFY_PART_UNNAMEDbun run scripts/verify-parts.ts found a gate-part document that names no run attempt, or none at all, in the verify job's download
X_URL_PATHNAME_AS_PATHa source reads .pathname off a URL built from import.meta.url (or destructures it, or builds a file:// URL from a string) and uses it as a filesystem path
X_RELATIVE_PATH_NOT_POSIXa host relative() answer is used without toPosix
X_SET_COOKIE_HAND_BUILTa Set-Cookie attribute is spelled in a literal, or a Set-Cookie header is written by name, outside packages/core/src/cookie.ts and packages/http/src/set-cookie.ts
X_SET_COOKIE_PIN_STALEa pin in SET_COOKIE_PINS is above what its file holds
X_SET_COOKIE_UNSCANNEDthe serializer's own module was not among the files scanned, so no verdict was reached
X_FACTORY_NAME_SPELLINGa public package entry exports a retired factory spelling
X_CORE_THROWER_UNCALLEDa @ultimat3/core export that throws a coded error has no non-test caller
X_CORE_THROWER_PIN_STALEa pinned uncalled core thrower now has a caller or no longer exists
X_CORE_THROWERS_UNSCANNEDthe core-thrower rule read no file
X_SQL_EXPORT_UNREADa package entry exports a SQL_* statement nothing outside the package reads
X_SQL_EXPORT_UNSCANNEDthe SQL-export rule read no package entry file
X_WIKI_EXAMPLE_UNCOMPILEDa fenced ts/tsx example on a wiki page does not typecheck, beyond its page's pin
X_WIKI_EXAMPLE_PIN_STALEa page's wiki-fence pin is above what fails on it now
X_WIKI_EXAMPLE_UNSCANNEDno wiki fence was read, or tsc refused to run
X_WIKI_ANCHOR_DEADa Page#anchor link lands on no heading, or on a page that does not exist
X_WIKI_ANCHOR_UNSCANNEDno wiki anchor link was read
X_WIKI_TABLE_UNSCANNEDno wiki table was read
X_KNOWN_GAP_LINK_MALFORMEDa Known-Gaps [B<n>] link does not resolve to its backlog row, or the line names no issue or the wrong one
X_KNOWN_GAP_UNSCANNEDwiki/Known-Gaps.md is missing or cites no [B<n>] row
X_KNOWN_GAP_UNPINNEDan Open row of wiki/Known-Gaps.md links no test asserting today's behaviour, or a dead one
X_KNOWN_GAP_PIN_STALEscripts/lib/known-gaps-unpinned-pins.ts lists a row that is pinned now, closed or renamed
X_DOC_TUTORIAL_DIVERGEDa tutorial's command, run on a scaffold of this checkout, exits otherwise than the page shows or prints no line matching its ✓/✗ summary
X_DOC_UID_STALEdocs/ops states a uid the image it names does not run
X_DOC_UID_UNSCANNEDno chart runAsUser was read, or no uid was attributed to one of the two images
X_DOC_BOUNDARY_RULES_STALEdocs/architecture/02-boundaries.md states a rule count or codes that differ from BOUNDARY_CODES
X_DOC_BOUNDARY_RULES_UNSCANNEDthe boundary-rules section, its count sentence or its table is missing
X_PLAN_STATUS_INVALIDa docs/plans/**/status.yml does not parse, or its status or a slice's status is not not_started | in_progress | blocked | complete | superseded
X_PLAN_STATUS_UNSCANNEDno docs/plans/**/status.yml was found, so no tracker was checked
X_GUARDS_DOC_UNSCANNEDthe generator found no runnable scripts/*.ts that emits a code
X_CLAUDE_MD_OVERSIZEa CLAUDE.md is over its byte ceiling: 16 KB for the root, 24 KB for a package, or a package file's pin in scripts/lib/claude-md-size-pins.ts
X_CLAUDE_MD_UNSCANNEDthere is no root CLAUDE.md, or no packages/*/CLAUDE.md was found
X_NEW_ERROR_CODE_INVALIDbun run new-error-code was called without what it needs, or for a package with no errors.ts
X_NEW_ERROR_CODE_EXISTSthe code is already registered or already documented
X_NEW_ERROR_CODE_PATTERN_UNKNOWNthe package's errors.ts has no shape new-error-code can add to
X_FRAMEWORK_TABLE_UNAPPLIEDa package declares a framework table in a create table and no boot path creates it
X_FIX_SHELL_ARG_UNSCREENEDa value is spliced into the SHELL COMMAND POSITION of a fix: line without being screened
X_FIX_SHELL_ARG_PIN_STALEa package is pinned above the number of unscreened fix: substitutions it still has
X_FIX_SHELL_ARG_PIN_UNEXPLAINEDa package is pinned with a blank reason
X_SPAWN_UNTIMEDa package spawns more child processes with no timeout than it is pinned at
X_SPAWN_TIMEOUT_PIN_STALEa package is pinned above the number of untimed spawns it still has
X_SPAWN_TIMEOUT_PIN_UNEXPLAINEDa package's untimed-spawn pin has a blank reason
X_SPAWN_TIMED_OUTa command a gate script ran did not finish within its deadline and was killed
X_FETCH_UNBOUNDEDa package makes more shipped fetch( calls with no signal than it is pinned at
X_FETCH_DEADLINE_PIN_STALEa package's unsignalled-fetch pin is above what the tree holds
X_FETCH_DEADLINE_PIN_UNEXPLAINEDa package's unsignalled-fetch pin has a blank reason
X_FIX_SHELL_ARG_UNSCANNEDthe rule read no source file
X_FIX_PROSEa package holds more fix: lines that open with prose than its pin allows
X_FIX_PROSE_PIN_STALEa package is pinned above the number of prose fix: lines it holds
X_FIX_PROSE_PIN_UNEXPLAINEDa FIX_PROSE_PINS row carries a blank reason
X_FIX_PROSE_UNSCANNEDfix-prose read no fix: line at all
X_VOCABULARY_REDECLAREDa closed set of string literals is declared a second time
X_VOCABULARY_UNSCANNEDthe vocabulary rule read nothing, or the owning module declares nothing it can read
X_FROZEN_RECORD_INFERREDconst X: Readonly<Record<K, V>> = Object.freeze({…}) lets the type argument be INFERRED
X_FROZEN_RECORD_UNSCANNEDthe freeze rule found no Object.freeze at all, or no correct form to recognise
X_CONFIG_READER_PIN_UNEXPLAINEDan AppConfig leaf key is pinned with a blank reason
X_CONFIG_READER_APP_UNREADa CONFIG_READER_PINS row says app code reads a key and neither tracked app does
X_SECRET_COMPARE_PIN_UNEXPLAINEDa comparison site is pinned with a blank reason on the secret-comparison ratchet
X_PROTO_CHAIN_INDEX_PIN_UNEXPLAINEDa package is pinned with a blank reason on the prototype-index ratchet
X_FRAMEWORK_TABLE_UNSCANNEDthe framework-table rule read nothing — no create table in packages/*/src, or a FRAMEWORK_SCHEMA that names no table
X_DOC_PACKAGE_GRAPH_UNSCANNEDthe package map draws no graph this rule can read
X_LOCKFILE_STALEbun.lock records an @ultimat3/* range that the package.json it was generated from no longer declares
X_RELEASE_FLAG_UNKNOWNscripts/release.ts was passed a flag it does not declare
X_RELEASE_VERSION_UNSTATEDa release was asked for and neither --version nor --bump was given
X_RELEASE_TREE_DIRTYscripts/release.ts was run over a working tree with uncommitted changes
X_RELEASE_VERSION_INVALIDscripts/release.ts was asked for a version that does not move forward, or for two at once
X_RELEASE_MAJOR_WINDOWscripts/release.ts was asked for a major inside the 90-day window, or a released major's section is dated inside it
X_BREAKING_ON_MAINa change to main carries a BREAKING — entry under [Unreleased] while the major window is closed
X_RELEASE_UNDEPRECATED_REMOVALa name a package's src/index.ts exported at the previous release tag is gone, and that tag never marked it @deprecated
X_CHANGELOG_HIGHLIGHTS_MISSINGa release section from 30.0.0 on does not open with ### Highlights of one to five bullets
X_RELEASE_TAG_UNREACHABLEscripts/release-due.ts found no vX.Y.Z tag reachable from HEAD, or could not read the commits since it
X_RELEASE_WINDOW_UNREADABLEscripts/release-due.ts found the last release tag but git log v<tag>..HEAD failed
X_RELEASE_HEAD_NOT_MAINscripts/release-due.ts refused to answer because HEAD is not the tip of origin/main
X_HEALTH_ROW_UNREADABLEscripts/health.ts could not read a row's command, so no verdict for that row exists
X_TEST_BARE_ERRORa test reports its own verdict by throwing a bare Error
X_TEST_BARE_ERROR_PIN_STALEa package is pinned above the number of bare-Error throws it actually has
X_TEST_BARE_ERROR_UNSCANNEDno test file was read, so every package reported zero
X_SOURCE_BARE_ERRORshipped source throws a bare builtin Error
X_SOURCE_BARE_ERROR_EXEMPT_STALEan exemption in the bare-Error inventory names a site that holds no bare throw
X_TEST_REAL_SLEEPa test waits for the wall clock — Bun.sleep(n), setTimeout(…, n > 1), setInterval — with no // real-clock: reason
X_TEST_REAL_SLEEP_PIN_STALEa package is pinned at more wall-clock test waits than the tree holds
X_TEST_REAL_SLEEP_UNSCANNEDthe real-sleep rule read no test file
X_NODE_IMPORT_UNEXPLAINEDa node: builtin is imported with no why: comment on it or directly above
X_NODE_IMPORT_PIN_STALEa package is pinned above the number of unexplained node: imports it actually has
X_NODE_IMPORT_UNSCANNEDno source file was read, so every package reported zero
X_TEST_FIX_UNRUNNABLEa fix: a test writes or asserts cites a command this build cannot run
X_TEST_FIX_PIN_STALEa package is pinned above the number of unrunnable test fix: lines it has
X_TEST_FIX_UNSCANNEDno test file matched, so the rule reported over a file set it never read
X_TEST_THROW_NOT_THROWNexpect(fn).toThrow(…) is given a callback that returns an error instead of throwing one
X_TEST_TYPECHECK_REGRESSEDa package's own tests carry more tsc errors than the ratchet pins
X_TEST_TYPECHECK_PIN_STALEa pin in the test-typecheck ratchet is above what remains, or names a directory that is not a package
X_TEST_TYPECHECK_UNSCANNEDthe test program did not compile, so the rule reported over tests it never read
X_CATCH_RENDER_UNSAFEa catch binding is rendered into a refusal by a form that can itself throw
X_CATCH_RENDER_PIN_STALEa package's unsafe-catch pin is above what the tree contains
X_CATCH_RENDER_UNSCANNEDthe unsafe-catch scan read no source file
X_CONFIG_KEY_UNREADAppConfig declares a key nothing in packages/*/src reads
X_CONFIG_READER_PIN_STALEa pinned config key gained a reader
X_CONFIG_READERS_UNSCANNEDthe config-reader scan matched no interface or no source
X_DECLARED_KEY_UNREADa leaf key of a declaration surface — the type a primitive or a define* factory takes — is read by nothing in packages/*/src
X_DECLARATION_READER_PIN_STALEa pin in that ratchet no longer holds
X_DECLARATION_READERS_UNSCANNEDthe declaration scan walked nothing
X_DOC_MIGRATION_SECTION_MISSINGa released major has a summary row in wiki/Upgrading.md and no → X.Y.Z, entry by entry section for it to point at
X_DOC_CONFIG_KEY_UNKNOWNa page tells a reader to set a key AppConfig does not declare
X_DOC_CONFIG_ALLOWANCE_STALEan entry in DOC_CONFIG_KEY_ALLOWANCES matches nothing in the tree
X_DOC_COMMAND_PIN_EXCEEDEDa page holds more unresolved x citations than its pin
X_TIER_FLOOR_UNDECLAREDa package sits above the lowest tier its own imports allow, with no written reason
X_TIER_FLOOR_STALEFLOOR_ABOVE keeps a row for a package that is at its floor, or names no package at all
X_SCAFFOLD_VERIFY_UNREADABLEx verify --json in a scaffolded app printed no step table this gate could parse
X_GATE_CODE_UNDOCUMENTEDa code the never-ships list names has no table row, or a code scripts/ declares is missing from that list
X_GATE_CODE_BACKLOG_STALEa code pinned in scripts/gate-codes-backlog.ts that this page is no longer wrong about
X_SIDE_EFFECTS_UNDECLAREDa module runs a statement at import time and its package's sideEffects excludes it
X_SIDE_EFFECTS_BY_USE_STALEa SIDE_EFFECTS_BY_USE row that no longer holds
X_SIDE_EFFECTS_UNANCHOREDa module on SIDE_EFFECTS_ANCHORS that no entry imports for effect
X_SIDE_EFFECTS_ANCHOR_STALEa SIDE_EFFECTS_ANCHORS row naming a module nothing declares
X_SIDE_EFFECTS_ENTRY_STALEa declared sideEffects entry matches no file in the package
X_SIDE_EFFECTS_MISSINGa package declares no sideEffects at all
X_SIDE_EFFECTS_PIN_STALEa package pinned as declaring no sideEffects now declares one
X_SIDE_EFFECTS_UNSCANNEDthe scan walked no package, or found no import-time effect anywhere
X_CONFIG_KEY_READER_AMBIGUOUSan 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>
X_PROTO_CHAIN_INDEXa plain object literal typed Record<…> is READ with a computed key that is not a string literal
X_PROTO_CHAIN_INDEX_PIN_STALEa package is pinned above the number of prototype-reachable reads it still has
X_PROTO_CHAIN_INDEX_UNSCANNEDthe scan read no source file
X_FLIGHT_SECOND_CURVEa module other than packages/core/src/backoff.ts computes its own backoff
X_NOT_IMPLEMENTED_COPYa package other than @ultimat3/core constructs X_NOT_IMPLEMENTED itself
X_NOT_IMPLEMENTED_COPY_UNSCANNEDthe rule found no construction of X_NOT_IMPLEMENTED anywhere, core's own included
X_FLIGHT_RANDOM_UNINJECTEDa shipped source file calls Math.random()
X_HELPER_COPYshipped source carries a second implementation of a helper that has one home
X_FINITE_BOUND_UNCHECKEDa numeric option is defaulted with ?? and never checked for finiteness
X_FINITE_BOUND_PIN_STALEa package is pinned above the number of unchecked numeric options it still has
X_FINITE_BOUND_UNSCANNEDthe scan read no source file
X_DEAD_DOCS_HOSTa shipped source file builds a URL on ultimate.dev
X_DEAD_DOCS_HOST_PIN_STALEa package is pinned above the number of dead-host URLs it still has
X_DEAD_DOCS_HOST_UNSCANNEDthe scan read no source file
X_SECRET_COMPARED_UNSAFELYa value whose name says it is a secret is compared with ===, !==, .includes(), .equals() or Buffer.compare()
X_SECRET_COMPARE_PIN_STALEa package is pinned above the number of secret-named comparisons it still has
X_SECRET_COMPARE_UNSCANNEDthe scan read no source file
X_VERSION_STAMP_PIN_STALEa page is pinned as naming a version for a reason that is not a stamp, and the page no longer says it
X_WORKSPACE_MANIFEST_UNREADABLEa package.json the workspace glob matched cannot be read as a workspace manifest
X_APP_NAME_EMPTYthe app name has no letters or digits
X_APP_EMPTYan app with an app.config.ts registered no primitive
X_BOUNDARY_SURFACE_IMPORTa surface imports one SURFACE_SPECS does not allow
X_PERMISSION_UNGRANTEDan action, query or route requires a permission no role grants
X_JOB_UNREGISTEREDa job reached the manifest under its positional anonymous name
X_FEATURE_UNKNOWNx g --feature names a slice that does not exist
X_ROUTE_ASYNC_PAGEa route exports an async Page
X_BUDGET_PARAMS_UNDECLAREDa dynamic route with a budget declares no prerender() paths to weigh it by
X_TEST_BUDGET_INVALIDa test memory budget or worker cap env var does not parse
X_VERIFY_SHARD_INVALIDx verify --shard was given a spec or a step list it cannot split
X_VERIFY_MERGE_INCOMPLETEx verify merge was handed parts that do not add up to the whole gate
X_VERIFY_MERGE_INPUTa part handed to x verify merge is not an x verify --json document
X_SITEMAP_EXTRA_INVALIDa seo.sitemap.extra path names no public page
X_DEV_RESTART_REQUIREDa save reached a module that defines a primitive; only a new process serves it
X_DEV_ROOT_GONEthe app root x dev serves was deleted or moved
X_VERIFY_STEP_TIMEOUTa gate step ran past its deadline and was stopped
X_COVERAGE_BELOW_FLOORthe unit suite covers less of the app than x.verify.json states
X_COVERAGE_FLOOR_UNSTATEDx.verify.json states no coverage floor, or one under 95 with no reason
X_COVERAGE_FLOOR_STALEthe app now covers more than the floor in x.verify.json states
X_DB_HANDLE_UNREGISTEREDan entity x g wrote is not in the app's typed database handle
X_ROLE_LOAD_INCOMPLETEa worker or scheduler did not register a job or task the manifest names
X_ADMIN_RESOURCE_UNWIREDan admin override x g wrote is not in the app's defineAdmin() call
X_IMAGE_NOT_PREBUILTa container role built at boot what the image build should have: island chunks or stylesheets
X_ADMIN_UNSCANNEDa defineAdmin() declaration sits outside the app scan, so the admin is never mounted
X_FRAMEWORK_TABLE_ORPHANEDa framework table no release reads any more is still in the database
X_BUILD_OUT_UNSAFEthe static export directory is not one a build may empty
X_FRAMEWORK_SCHEMA_UNAPPLIEDa serving role booted over a database whose framework schema this build never applied
X_APP_URL_PORT_MISMATCHAPP_URL names a loopback port x dev does not serve
X_DEV_HOST_REFUSEDa /_x request named a host that is not this machine
X_TRUSTED_PROXY_HOPS_INVALIDTRUSTED_PROXY_HOPS is not a whole number of proxies the boot accepts
X_PERMISSION_BORROWEDan app rule requires a permission only an imported package declared
X_ERROR_CODE_UNTHROWN_STALEa code UNTHROWN_CODES lists as thrown by nothing is thrown again — delete it from UNTHROWN_CODES in packages/cli/src/unthrown-codes.ts
X_DEV_STATE_UNWRITABLEx dev cannot claim its state directory
X_PACKAGE_TEST_ONLY_SHIPPEDa test-only module ships in the tarball
X_ISLAND_MODULE_DUPLICATEDAn island chunk bundles one module more than once
X_BACKFILL_SLICE_ENTITYthe slice holds no entity a generated backfill can sweep
X_LAYOUT_SIBLING_MODULEa primitive module beside its directory
X_SLICE_POLICY_INCOMPLETEa generator needs an export the slice policy.ts does not declare
X_WORKER_QUEUE_UNKNOWNWORKER_QUEUES names a queue no job and no jobs.queues entry declares
X_UPGRADE_DIRTY_TREEx upgrade refused a tree with uncommitted changes
X_UPGRADE_MIXED_PINSx upgrade found two @ultimat3/* versions across the workspaces
X_UPGRADE_HOP_TOO_WIDEx upgrade --to is outside the one hop a run may make
X_UPGRADE_REGISTRY_UNREACHABLEx upgrade could not read the published versions from npm
X_UPGRADE_PIN_UNREADABLEx upgrade found an @ultimat3/* dependency that names no version
X_UPGRADE_VERSION_UNPUBLISHEDx upgrade --to names a version npm does not have
X_UPGRADE_INSTALL_FAILEDbun install failed after x upgrade wrote the pins
X_UPGRADE_GATE_UNREADABLEthe installed x verify answered with no JSON report
X_DEPLOY_BUILD_UNSTAMPEDthe deployment answers with no build header
X_DEPLOY_UNSTABLEthe build answered but did not hold
X_DEPLOY_QUEUE_UNSERVEDa registered queue has no serving worker of this build
X_DEPLOY_BUILD_MISMATCHproduction never served this build
X_JOB_OUTLASTS_DRAINa job's declared timeout outlasts the worker's budget
X_FEATURE_REQUIREDx g query or x g backfill named no slice to read
X_BOUNDARY_PACKAGE_TO_APPpackages/ imported apps/ at runtime
X_APP_IMPORT_UNRESOLVEDan app module imports what does not resolve
X_STREAM_ALREADY_FLUSHEDa response header was written after the stream flushed
X_QUERY_SLICE_ENTITYx g query into a slice whose entity is not the one it scaffolds
X_DEPLOY_ENV_MISSINGx deploy --method compose found no complete .env.production
X_ENV_FILE_EXISTSx env init --production found .env.production already written
X_DEV_STOP_TIMEOUTx stop sent SIGTERM and x dev did not exit in time
X_DEV_STOP_DENIEDx stop may not signal the x dev the lock names
X_ASSET_RETAIN_FAILEDBuild assets were not retained
X_APP_MODULE_LOAD_FAILEDan app module failed to load, so the role refused to serve a partial app
X_CHART_MISSINGx g chart-alerts found no Helm chart to write into
X_ENTITY_VIEW_DRIFTa view entity's columns disagree with the view its migration created
X_CLIENT_SPEC_UNSUPPORTEDx client met an OpenAPI construct its compiler refuses
X_CLIENT_STALEa generated client is older than the document it was compiled from
X_CLIENT_EDITEDa generated client file was changed by hand
X_GRAPH_NODE_UNKNOWNx graph or x impact was asked about a node the app graph does not hold
X_CLIENT_SPEC_INVALIDx client was handed a document that is not OpenAPI 3.0 or 3.1
X_REPRO_UNKNOWNx repro was given an id nothing holds
X_REPRO_NOT_REPRODUCEDa written repro test did not fail the way the original did
X_REPRO_CAPTURE_OFFx repro was given a request id while failure capture is off
X_ENTITY_RETAIN_UNSWEPTan entity declares retain and no purge() sweeps it
X_NEW_SHAPE_UNKNOWNx new --shape names no registered shape
X_NEW_SHAPE_CONFLICTx new --shape with --no-example
X_SEO_CARD_ROUTE_UNKNOWNog.capture names a path no site/ route answers
X_SEO_CARD_BROWSER_MISSINGa static build with social cards found no browser to photograph them
X_IMAGE_SOURCE_UNREADABLEa responsiveImage src is not a file the static export holds
X_VERIFY_SKIPS_OVER_CEILINGa step skipped more tests than its skipCeiling allows
X_ASSET_VARIANT_UNDECLAREDan /assets image variant responsiveImage() never mints
X_NEW_SHAPE_GENERATE_FAILEDa shape generator failed in the new app
X_ISLAND_DISPOSER_MISSINGan island's mount returns no disposer
X_SOCKET_HAND_ROLLEDan app upgrades a websocket itself
X_EXERCISE_FILE_UNEDITABLEx g could not add an entry to apps/web/exercise.ts
X_ERROR_REPORTER_DSN_UNCLAIMEDSENTRY_DSN is set, and the app installed a reporter marked neither as its Sentry transport nor as a local sink
X_BOUNDARY_ADAPTER_IMPORTan app module imports an adapter installer
X_PREBUILT_REGISTRY_STALEthe image's prebuilt module registry does not list the app's modules, so the role scanned instead
X_APP_ROOT_NESTEDa second app.config.ts inside the app
X_WORKSPACE_NAME_TAKENx g app or x g package was given a name the other workspace kind already holds
X_PARTITIONS_UNMAINTAINEDa partitioned entity with no partitions() job
X_BOUNDARY_LOADER_IMPORTan app module imports a registration loader
X_WORKSPACE_EXTERNAL_DEP_UNDECLAREDa workspace imports a registry package that neither it nor the app root declares
X_TYPESCRIPT_VERSIONThe app declares a TypeScript older than the one x new scaffolds

Reserved codes

Everything above this heading is live: x errors explain <CODE> answers for it today, and the errors step fails the build if it does not (X_ERROR_CODE_UNREGISTERED). Everything below is documented for a different reason and is deliberately outside that rule.

Not thrown yet

Reserved, not registered. The name is spoken for — the design docs use it and no future code may reuse it — but nothing raises it in this build, so x errors explain refuses it. The right-hand column is what actually happens today.

Reserved codeWhat happens today
X_SW_HAND_EDITEDsw.js carries no checksum, so a hand edit survives x build and is silently overwritten on the next one
X_SW_UNCACHEABLEan offline strategy contradicting the route's render mode is accepted; X_SW_SCOPE_INVALID covers only the scope half
X_CACHE_UNTAGGED_QUERYa query no tag covers is cached and never invalidated. X_CACHE_TAG_UNKNOWN catches the opposite mistake — a tag no entity declared

New codes are added in the owning package's src/errors.ts and registered through registerErrorCodes(); add the row here in the same pull request, or the errors step of x verify fails the build with X_ERROR_CODE_UNDOCUMENTED — see Contributing.

Edit this page on GitHubThis page as markdown