Skip to content
Registry StackDocsDocumentation preview

Error and status code reference

View as Markdown

Registry Notary and Registry Relay return errors as RFC 9457 problem details with the media type application/problem+json. Each problem carries a stable string in the code extension member alongside the standard type, title, status, and detail fields. The tables below list every code value, the message the source attaches to it, and the usual cause.

Registry-owned problem type URIs use https://id.registrystack.org/problems/.... Client code must branch on the stable code extension and the response status, not by parsing type URI paths. The type URI identifies and documents the problem type.

The HTTP status is omitted from the Registry Notary and Registry Relay tables because a code can map differently by product and operation. Within a stable major release line, each existing product and operation keeps its released code-to-status mapping. Treat the standard status field of the problem response as authoritative for the request, and use code for the stack-wide meaning. The additive compatibility gate uses this reference as the error-code registry and the committed OpenAPI documents for operation mappings they enumerate.

Shared Registry Platform HTTP middleware can return platform-scoped problem types before a request reaches Registry Notary or Registry Relay application code.

Type pathMeaningUsual cause
registry-platform/request/body-too-largepayload too largeThe request body exceeds the configured limit.

Registry Notary returns the codes in the table below from its evidence taxonomy. Several distinct internal conditions intentionally collapse to one public code so that the public response does not disclose more than the caller is entitled to know. The audit record can carry a more specific code than the public response.

CodeMeaningUsual cause
evidence.server_disabledevidence server is disabledThe evidence surface is turned off in configuration.
claim.not_foundclaim was not foundThe requested claim id is not configured.
claim.version_not_foundclaim version was not foundThe requested claim version does not exist.
claim.operation_unsupportedclaim operation is unsupportedThe requested operation is not supported for the claim.
request.invalidevidence request is invalidThe request body or parameters failed validation.
consultation.invalid_requestregistry-backed consultation request is invalidA registry-backed batch or consultation input failed validation before Relay was called.
claim.disclosure_not_allowedrequested disclosure is not allowedThe requested disclosure level is not permitted for the claim.
purpose.not_allowedpurpose is not allowedThe requested purpose is not permitted for the claim.
profile.unsupportedevidence request profile is unsupportedThe requested evidence profile is not supported.
evidence.not_availableevidence is not availableThe pinned consultation produced no usable evidence or a required proof was not established.
batch.too_largebatch request is too largeThe batch request exceeds the configured item limit.
evaluation.not_foundevaluation was not foundThe referenced evaluation id does not exist.
evaluation.binding_mismatchevaluation binding mismatchThe referenced evaluation does not match the requested binding.
evaluation.quota_exceededmachine evaluation quota was exceededThe authenticated machine principal exceeded the configured evaluation subject budget.
claim.format_not_supportedformat is unsupportedThe requested response format is not supported.
credential.issuer_not_configuredcredential issuer is not configuredCredential issuance was requested but no issuer is configured.
credential.holder_proof_requiredholder proof is requiredCredential issuance requires a holder proof that was not supplied.
credential.holder_proof_replayholder proof has already been usedThe supplied holder proof was already consumed.
credential.issuance_failedcredential issuance failedThe credential could not be issued for an internal reason.
claim.rule_evaluation_failedclaim rule evaluation failedA configured claim rule could not be evaluated.
idempotency.conflictidempotency key was reused with a different requestThe idempotency key was reused with a different request body.
auth.purpose_requiredrequired purpose is missingThe request omits a required purpose.
auth.missing_credentialauthentication credential is missingNo authentication credential was provided.
auth.multiple_credentialsmultiple authentication credentials were providedMore than one authentication credential was provided.
auth.scope_deniedrequired scope is missingThe caller’s scopes do not include the required scope.
subject_access.deniedsubject access is deniedA subject-bound or delegated request was denied; also the public code for invalid-token and assurance-denied conditions. The audit record carries the specific reason.
subject_access.rate_limitedsubject access is rate limitedToo many subject-access requests were made in the configured window.

Policy decision denials surface a stable pdp.* code carried through from the shared Policy Decision Point, for example pdp.purpose_not_permitted, pdp.assurance_insufficient, or pdp.evidence_stale. The same pdp.* codes are listed under Registry Relay policy.

The codes above are the evidence-evaluation taxonomy. The Notary server also returns the operational codes below from its federation, credential-status, configuration, admin, readiness, and request-handling surfaces.

federation.* codes from the server-to-server federation surface. Federation problems use URN type URIs of the form urn:registry-notary:problem:federation:<suffix> rather than the https:// types used by the evidence taxonomy. The exception is federation.stale_claim_result: it is not a problem response but a signed evaluation result (HTTP 200, application/jwt) that carries the code in its signed body.

CodeMeaningUsual cause
federation.invalid_requestfederation request is invalidA federation JSON or JWT request failed validation.
federation.invalid_tokenfederation token is invalidA federation request is missing valid authentication or its token failed verification.
federation.forbiddenfederation request is forbiddenA known federation peer was denied by local policy.
federation.unsupported_media_typefederation media type is unsupportedThe federation request used a content type the surface does not accept.
federation.payload_too_largefederation payload is too largeThe federation request body exceeds the configured limit.
federation.replayfederation request was replayedA federation jti or nonce was already used.
federation.server_errorfederation server errorThe federation request could not be served for an internal reason.
federation.disabledfederation is disabledThe federation surface is turned off in configuration.
federation.stale_claim_resultfederation claim result is staleThe local claim result is older than policy allows; returned in a signed response body.

credential_status.* codes for credential status reads and transitions.

CodeMeaningUsual cause
credential_status.not_foundcredential status was not foundThe requested credential status record does not exist.
credential_status.invalid_statuscredential status is invalidThe requested credential status value is not valid.
credential_status.invalid_transitioncredential status transition is invalidThe requested status transition is not permitted.
credential_status.disabledcredential status is disabledThe credential status surface is turned off for this deployment.
credential_status.unavailablecredential status is unavailableCredential status could not be checked at this time.

registry.admin.* codes for admin surfaces. These are returned to admin callers, not to data-plane clients.

CodeMeaningUsual cause
registry.admin.capability.not_supportedregistry admin capability is not supportedThe requested registry administration capability is not supported.
registry.admin.posture.invalid_tierregistry admin posture tier is invalidThe requested posture tier is not a recognized value.
CodeMeaningUsual cause
readiness.not_readyservice is not readyThe service is not ready to serve traffic.
posture.filter_failedposture filter failedA posture report filter could not be evaluated.
posture.unavailableposture state is unavailablePosture state could not be read at this time.

request.* and audit.* transport-level codes.

CodeMeaningUsual cause
request.uri_too_longrequest uri is too longThe request URI exceeds the configured limit.
audit.write_failedaudit write failedAn audit record could not be written.

The Notary OpenAPI document also uses three generic umbrella problem types as status-keyed examples: request.conflict (409), request.too_large (413), and format.unsupported (406). These are illustrative placeholders: runtime responses use the specific codes above, such as idempotency.conflict, batch.too_large, and claim.format_not_supported. One 413 is an exception: an oversized HTTP request body is rejected by the shared body-limit middleware with problem type https://id.registrystack.org/problems/registry-platform/request/body-too-large and no code extension.

Registry Relay returns namespaced codes from its error taxonomy. Codes in the configuration, metadata, runtime binding, and ingest namespaces are startup-only: they are surfaced on standard error at startup or in the /ready body, not as a direct response to a client request.

auth.* codes from credential and OIDC token checks.

CodeMeaningUsual cause
auth.missing_credentialauthentication credential is missingNo credential in the Authorization or x-api-key header.
auth.invalid_credentialinvalid credentialThe credential did not match any configured key.
auth.malformed_credentialmalformed credentialThe credential header could not be parsed.
auth.scope_deniedrequired scope is missingThe caller lacks the required scope.
auth.purpose_requiredrequired purpose is missingThe Data-Purpose header is required for the resource.
auth.purpose_deniedpurpose deniedThe Data-Purpose header is not permitted by policy for the resource.
auth.admin_requiredadmin scope requiredThe endpoint requires the admin scope.
auth.token_expiredtoken expiredThe bearer token exp is in the past beyond the configured leeway.
auth.token_not_yet_validtoken not yet validThe bearer token nbf is in the future beyond the configured leeway.
auth.token_signature_invalidtoken signature invalidThe bearer token signature did not verify against the resolved key.
auth.issuer_mismatchissuer mismatchThe bearer token iss does not equal the configured issuer.
auth.audience_mismatchaudience mismatchThe bearer token aud does not intersect the configured audience set.
auth.kid_unknownkid unknownThe bearer token kid is not in the JWKS document after one refresh.
auth.algorithm_not_allowedalgorithm not allowedThe bearer token alg is not in the configured allowlist.
auth.client_not_allowedclient not allowedThe bearer token client is not in the configured allowed_clients list.
auth.jwks_unavailablejwks unavailableThe JWKS endpoint is unreachable and no cached keys are available.
auth.rate_limitedrate limitedToo many failed authentication attempts from the same client address within the configured auth.failure_throttle window.

pdp.* policy decision codes from the shared Registry Policy Decision Point.

CodeMeaningUsual cause
pdp.purpose_not_permittedpurpose not permittedThe request purpose is not permitted by policy.
pdp.assurance_insufficientassurance insufficientThe request assurance is insufficient for policy.
pdp.evidence_staleevidence staleThe source evidence is too old for policy.
pdp.legal_basis_requiredlegal basis requiredThe policy requires a legal basis the request did not carry.
pdp.consent_requiredconsent requiredThe policy requires a consent reference the request did not carry.
pdp.jurisdiction_not_permittedjurisdiction not permittedThe request jurisdiction is not permitted by policy.
pdp.unsupported_policy_termunsupported policy termThe policy contains a term the service cannot enforce.
pdp.policy_requiredpolicy requiredAn enforceable policy constraint is required but absent.
pdp.policy_id_requiredpolicy id requiredThe policy identity is required but absent.
pdp.policy_hash_invalidpolicy hash invalidThe policy hash did not validate.

entity.* codes for entity reads.

CodeMeaningUsual cause
entity.filter_requiredfilter requiredA row-collection read on an entity with required_filters received no qualifying filter.

filter.* codes for query parameter validation.

CodeMeaningUsual cause
filter.unknown_fieldunknown fieldA query parameter references a field not in the resource schema.
filter.not_allowedfilter not allowedThe field is not in the resource’s allowed_filters list.
filter.unsupported_opunsupported operatorThe operator is not allowed for the field.
filter.invalid_valueinvalid filter valueThe value does not parse for the field’s type.
filter.too_many_valuestoo many filter valuesAn in-list exceeds the configured maximum of 100 values.
filter.too_many_filterstoo many filtersThe request carries more filter parameters than the per-request cap allows.
filter.invalid_rangeinvalid rangeThe range bounds are inverted or invalid.
filter.limit_out_of_rangelimit out of rangeThe limit exceeds the configured maximum or is non-positive.

schema.* codes for dataset, resource, and aggregate lookups.

CodeMeaningUsual cause
schema.unknown_datasetunknown datasetThe dataset id is not registered.
schema.unknown_resourceunknown resourceThe resource id is not registered under the dataset.
schema.unknown_aggregateunknown aggregateThe aggregate id is not declared for the resource.
schema.resource_unavailableresource unavailableThe resource is configured but failed ingest or is mid-reload.

aggregate.* codes for aggregate queries.

CodeMeaningUsual cause
aggregate.execution_failedaggregate execution failedThe query engine returned an execution error.
aggregate.format_unsupportedaggregate format unsupportedThe requested aggregate response format is not supported.
aggregate.measure_unsupportedaggregate measure unsupportedA configured measure references a function that is not implemented.
aggregate.disclosure_violationdisclosure violationA disclosure-control invariant was violated before response.
aggregate.filter_requiredfilter requiredA required aggregate filter was not supplied.

admin.* codes for the admin surface.

CodeMeaningUsual cause
admin.reload_failedreload failedOne or more resources failed to reload.
admin.unknown_resourceunknown admin resourceThe reload target id was not found.

spdci.* codes for SP DCI request validation and response mapping.

CodeMeaningUsual cause
spdci.request.invalid_headerinvalid spdci headerThe request header is missing or omits a required SP DCI field.
spdci.request.invalid_messageinvalid spdci messageThe request message is missing or not an object.
spdci.request.missing_transaction_idmissing transaction_idmessage.transaction_id is absent or empty.
spdci.mapper.unavailablespdci response mapper unavailableResponse mapping is configured but the mapper extension is not installed.

ogc.* codes for OGC API collection, feature, and record lookups.

CodeMeaningUsual cause
ogc.collection_not_foundogc collection not foundThe collection is not registered, spatially exposed, or visible to the caller.
ogc.feature_not_foundogc feature not foundThe feature is not registered, visible, or within the required filter context.
ogc.record_not_foundogc record not foundThe record is not registered or visible to the caller.

spatial.* codes for spatial parameters and geometry.

CodeMeaningUsual cause
spatial.geometry_invalidspatial geometry invalidThe geometry field is malformed.
spatial.geometry_too_largespatial geometry too largeThe geometry exceeds the configured vertex limit.
spatial.bbox_invalidspatial bbox invalidThe bbox parameter is malformed, uses an unsupported shape, or crosses the antimeridian.
spatial.filter_unsupportedspatial filter unsupportedA supported parameter cannot be evaluated for the collection.
spatial.crs_unsupportedspatial crs unsupportedThe requested coordinate reference system is not supported.

query.* codes for query cursors.

CodeMeaningUsual cause
query.cursor_invalidquery cursor invalidThe cursor is malformed, expired, or bound to a different query context.

internal.* codes for transport-level limits and unhandled errors.

CodeMeaningUsual cause
internal.timeoutrequest timed outThe request exceeded the configured timeout.
internal.payload_too_largepayload too largeThe request body or response cardinality exceeds configured caps.
internal.uri_too_longuri too longThe request URI exceeds the configured length cap.
internal.unhandledunhandled internal errorThe request could not be served for an unexpected reason.

ingest.* startup-only codes. These are surfaced on standard error and in the /ready body, not as a direct client response.

CodeMeaningUsual cause
ingest.source_not_foundsource not foundA configured source is missing or unreadable.
ingest.source_unreadablesource unreadableA source could not be read or parsed.
ingest.schema_mismatchschema mismatchThe declared schema does not match observed columns or types.
ingest.strict_extra_columnstrict schema rejected extra columnA source contains columns absent from a strict schema.
ingest.cache_write_failedcache write failedThe parquet cache could not be written.
ingest.registration_failedtable registration failedTable registration in the query engine failed.

config.* and the feature-flag startup codes below are startup-only. They are surfaced on standard error and a non-zero process exit, not as a direct client response.

CodeMeaningUsual cause
config.parse_errorconfig parse errorThe configuration document did not deserialize.
config.validation_errorconfig validation errorThe configuration failed cross-field validation.
config.missing_secretmissing secretA required hash environment variable is unset.
config.duplicate_idduplicate identifier in configTwo configured ids collide.
spdci.config.feature_disabledspdci api standards feature disabledSP DCI standards adapters were configured but the binary lacks the feature.
spdci.config.mapping_feature_disabledspdci cel mapping feature disabledSP DCI response mapping was configured but the binary lacks the feature.
ogcapi.features.config.feature_disabledogc api features feature disabledOGC API Features config was set but the binary lacks the feature.
ogcapi.edr.config.feature_disabledogc api edr feature disabledOGC API EDR config was set but the binary lacks the feature.
ogcapi.records.config.feature_disabledogc api records feature disabledOGC API Records config was set but the binary lacks the feature.

metadata.manifest.* startup-only codes for split metadata manifest loading.

CodeMeaningUsual cause
metadata.manifest.file_not_foundmetadata manifest file not foundThe metadata manifest could not be read.
metadata.manifest.parse_failedmetadata manifest parse failedThe metadata manifest did not deserialize.
metadata.manifest.version_unsupportedmetadata manifest version unsupportedThe manifest schema_version is not supported.
metadata.manifest.validation_failedmetadata manifest validation failedThe manifest failed semantic validation.
metadata.manifest.digest_invalidmetadata manifest digest invalidThe manifest digest is not valid.
metadata.manifest.digest_requiredmetadata manifest digest requiredGoverned configuration requires a manifest digest.
metadata.manifest.digest_mismatchmetadata manifest digest mismatchThe manifest digest did not match the configured digest.

runtime.binding.* startup-only codes for runtime config references into the compiled metadata manifest.

CodeMeaningUsual cause
runtime.binding.dataset_missingruntime dataset missing from metadataA runtime dataset id is absent from the metadata manifest.
runtime.binding.entity_missingruntime entity missing from metadataA runtime entity name is absent from the metadata manifest.
runtime.binding.table_missingruntime table missingA runtime entity references a table that is not configured.
runtime.binding.field_missingruntime field missing from metadataA runtime field binding is absent from the metadata manifest.
runtime.binding.filter_missingruntime filter missing from metadataA runtime filter binding is absent from the metadata manifest.
runtime.binding.scope_missingruntime scope missing or invalidA runtime scope is missing or uses an unsupported shape.
runtime.binding.relationship_missingruntime relationship missing from metadataA runtime relationship binding is absent from the metadata manifest.
runtime.binding.unsupported_evidence_offeringruntime evidence offering kind is unsupportedAn evidence offering is not an external Registry Notary offering.
runtime.binding.ecosystem_binding_missingruntime ecosystem binding missing from metadataThe configured ecosystem binding selector is absent from the metadata manifest.
runtime.binding.ecosystem_binding_invalidruntime ecosystem binding is invalidThe ecosystem binding does not reference a governed-evidence binding with policy identity and ODRL enforcement.

The codes above are transcribed from the error taxonomies in the owning crates. For the v0.13.0 source definitions, read the Registry Notary EvidenceError taxonomy and the Registry Relay error taxonomy.

The Notary server-layer codes (federation, credential status, configuration, admin, readiness, posture, and request handling) are defined in the registry-notary-server crate, principally src/federation/errors.rs, src/federation/mod.rs, and src/api.rs. The release compatibility gate compares this registry to its base reference and verifies that every listed code remains anchored in Rust or OpenAPI source.