Skip to content
Registry StackDocsLatest

Error and status code reference

View as Markdown

Registry Notary and Registry Relay return errors as RFC 9457 problem details, usually with the media type application/problem+json; some Notary configuration and posture responses carry the same problem body but are served as application/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.

The HTTP status is omitted from these tables. The Relay source maps each code to a status, but the same code can render at different statuses across versions, and the Notary public code does not carry a status in the taxonomy itself. Treat the standard status field of the problem response as authoritative for a given request.

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.
claim.disclosure_not_allowedrequested disclosure is not allowedThe requested disclosure level is not permitted for the claim.
target.not_foundtarget record was not foundThe target lookup matched no source record.
target.match_ambiguoustarget lookup returned more than one recordThe target lookup matched more than one source record.
target.identifier_missingtarget identifier is missingThe request omits a required target identifier.
target.attributes_insufficienttarget attributes are insufficient for matchingThe supplied target attributes cannot resolve a match.
target.matching_policy_rejectedtarget matching policy rejected the requestThe target matching policy denied the request.
target.not_in_valid_statetarget is not in a valid stateThe matched target is not in a state that allows evaluation.
target.match_low_confidencetarget match confidence is too lowThe best target match scored below the configured threshold.
requester.not_foundrequester record was not foundThe requester lookup matched no record.
requester.match_ambiguousrequester lookup returned more than one recordThe requester lookup matched more than one record.
requester.identifier_missingrequester identifier is missingThe request omits a required requester identifier.
requester.attributes_insufficientrequester attributes are insufficient for matchingThe supplied requester attributes cannot resolve a match.
requester.matching_policy_rejectedrequester matching policy rejected the requestThe requester matching policy denied the request.
requester.reauthentication_requiredrequester must reauthenticateThe requester needs to authenticate again before the request can proceed.
relationship.not_establishedrelationship was not establishedThe required relationship between requester and target was not found.
relationship.match_ambiguousrelationship match is ambiguousThe relationship lookup matched more than one relationship.
relationship.attributes_insufficientrelationship attributes are insufficient for matchingThe supplied attributes cannot resolve a relationship match.
relationship.policy_rejectedrelationship policy rejected the requestThe relationship policy denied the request.
relationship.purpose_not_allowedrelationship is not allowed for the requested purposeThe relationship cannot be used for the requested purpose.
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 availableEvidence could not be produced; also the collapsed public code for several matching-evidence conditions.
source.unavailablesource is unavailableA configured source service could not be reached or did not respond.
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.
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_requiredpurpose is requiredThe request omits a required purpose.
auth.missing_credentialcredential 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.
self_attestation.deniedself-attestation request is deniedA self-attestation request was denied; also the public code for invalid-token and assurance-denied conditions. The audit record carries the specific reason.
self_attestation.rate_limitedself-attestation request is rate limitedToo many self-attestation requests 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_source_observation: 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_source_observationfederation source observation is staleThe federation source observation 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.

config.*, admin.*, and registry.admin.* codes for the runtime configuration and admin surfaces. These are returned to admin callers, not to data-plane clients.

CodeMeaningUsual cause
config.candidate_invalidconfig candidate is invalidA submitted runtime configuration candidate failed validation.
admin.config_bundle_invalidconfig bundle is invalidA submitted configuration bundle could not be validated.
config.apply_unavailableconfig apply is unavailableRuntime configuration apply is not available for this deployment.
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.
registry.admin.config.inline_apply_rejectedregistry admin inline config apply was rejectedAn inline configuration apply was rejected.
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://registry-platform.dev/problems/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_credentialmissing credentialNo 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_deniedscope deniedThe caller lacks the required scope.
auth.purpose_requiredpurpose header requiredThe 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.

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.

provenance.* runtime codes for signed response credentials. Provenance startup-config failures use provenance.config.* codes; see Configuration.

CodeMeaningUsual cause
provenance.signer_unavailableprovenance signer unavailableThe configured signing backend is not currently available.
provenance.issuance_failedprovenance issuance failedThe request could not be served as a verifiable credential.
provenance.unknown_resourceprovenance unknown claim type or versionNo resource is registered for the requested claim type or version.
provenance.did_document_unavailableprovenance did document unavailableThe deployment does not host a did:web document.

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 provenance and 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.
provenance.config.missing_issuerprovenance issuer missingProvenance is enabled but no issuer block resolved.
provenance.config.issuer_did_mismatchprovenance issuer did mismatchThe configured issuer DID does not match the deployment host.
provenance.config.signer_kind_invalidprovenance signer kind invalidThe signer kind is not software or file_watch.
provenance.config.jwk_env_missingprovenance jwk_env missingThe configured signing key material is unavailable.
provenance.config.algorithm_unsupportedprovenance signing algorithm unsupportedsigning_algorithm is not EdDSA or ES256.
provenance.config.claim_validity_out_of_rangeprovenance claim validity out of rangeClaim validity is below 1 minute or above 365 days.
provenance.config.context_base_url_invalidprovenance context base url invalidcontext_base_url is not a valid http or https URL.
provenance.config.schema_base_url_invalidprovenance schema base url invalidschema_base_url is not a valid http or https URL.
provenance.config.verification_method_mismatchprovenance verification method mismatchverification_method_id does not start with the issuer DID plus a fragment.
publicschema.config.feature_disabledpublicschema cel feature disabledPublicSchema CEL mapping was configured but the binary lacks the feature.
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 repos. For the canonical 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.