Alexandria
Vocabulary Hub & DSL (vhub)

Error & Verdict Code Catalog (F5)

Complete reference of the 64 normative error, synchronization, lifecycle, configuration, and verdict codes in Vocabulary Hub v0.2.1.

Closed Error & Verdict Code Catalog (F5)

The Vocabulary Hub v0.2.1 specification defines a closed catalog of 64 normative codes (internal/core/codes/catalog.tsv). Every HTTP problem response (application/problem+json), DSP rejection payload, startup configuration error, synchronization error, and verdict event uses a code from this catalog.

Automated Negative Test Coverage (N-<CODE>): 63 out of the 64 codes are verified by dedicated negative conformance tests in conformance/negative_hub_test.go and conformance/negative_client_test.go. The sole unreachable code in the PoC is VERDICT_SHACL_WARNING (documented in OPEN_QUESTIONS.md under DP-7, because evaluator_poc evaluates JSON Schema Draft 2020-12 and skips RDF SHACL graph execution).


1. Hub API & Governance Codes (C-HUB)

CodeChannelSeverityRequirementTrigger Condition
API_FORBIDDEN_ROLEproblemerrorREQ-HUB-017Missing/invalid Bearer token (401) or principal lacks required role for endpoint (403, e.g., editor calling :approve).
API_PRECONDITION_REQUIREDproblemerrorREQ-HUB-018PUT /v1/drafts/{id} called without an If-Match header (428).
API_PRECONDITION_FAILEDproblemerrorREQ-HUB-018PUT /v1/drafts/{id} called with a stale ETag (412).
API_NOT_FOUNDproblemerrorREQ-HUB-019, REQ-CLI-026Requested draft, candidate, version, blob, agreement, or endpoint does not exist (404).
API_INVALID_STATEproblemerrorREQ-HUB-002Attempting to :approve or :reject a candidate that was already approved or rejected (409).
RELEASE_ABORTEDproblemerrorREQ-HUB-004Fault during release pipeline (e.g., transparency log failure); transaction rolled back with no partial release visible (500).

2. Lifecycle Date & Revocation Codes (C-HUB)

CodeChannelSeverityRequirementTrigger Condition
DATES_GRACE_ON_COMPATIBLEproblemerrorREQ-HUB-005Approving a compatible (MINOR/PATCH) version with an explicit grace_window.
DATES_EMERGENCY_ON_COMPATIBLEproblemerrorREQ-HUB-005Approving a compatible version with emergency: true.
DATES_ZERO_GRACE_WITHOUT_EMERGENCYproblemerrorREQ-HUB-005Approving a breaking (MAJOR) version with grace_window: P0D and emergency: false.
DATES_EMERGENCY_WITH_GRACEproblemerrorREQ-HUB-005Approving a breaking version with both emergency: true and grace_window > 0.
DATES_JUSTIFICATION_REQUIREDproblemerrorREQ-HUB-005, REQ-HUB-014Approving an emergency release or revoking a version without a non-empty justification.
DATES_NON_MONOTONICproblemerrorREQ-HUB-006DATE-1: New release's enforced_from is earlier than the enforced_from of a version currently in grace.
DATES_TOO_MANY_VERSIONSproblemerrorREQ-HUB-006DATE-2: Release would exceed max_concurrent_versions in the effective set V_t.
DATES_REVOCATION_TOO_EARLYproblemerrorREQ-HUB-014REV-3: Explicit revoked_from is earlier than R + propagation_window.
DATES_REVOKE_LEAVES_NO_HEADproblemerrorREQ-HUB-014REV-4: Revoking the only active version when no replacement version is in force.
DATES_ALREADY_REVOKEDproblemerrorREQ-HUB-014REV-1: Revoking a version that is already revoked.

3. Draft Lifecycle Parameter Invariants (C-HUB)

CodeChannelSeverityRequirementTrigger Condition
LIFECYCLE_STALENESS_LT_TTLproblemerrorN2freshness.max_staleness is shorter than freshness.ttl.
LIFECYCLE_GRACE_ZEROproblemerrorREQ-HUB-001lifecycle.grace_window is P0D.
LIFECYCLE_SYNC_INTERVALproblemerrorREQ-HUB-001sync_interval exceeds ttl / 2.
LIFECYCLE_CLOCK_SKEWproblemerrorREQ-HUB-001clock_skew is zero (PT0S).
LIFECYCLE_LEASEproblemerrorREQ-HUB-001lease_margin is less than 2 * clock_skew.
LIFECYCLE_PROPAGATIONproblemerrorREQ-HUB-001propagation_window is less than 2 * ttl.
LIFECYCLE_MAX_VERSIONSproblemerrorREQ-HUB-001max_concurrent_versions is < 2.

4. Client Startup Configuration Codes (C-CLI)

When any CONFIG_* check fails, alexandria-client prints the code to stderr and exits with status 2 (REQ-CLI-001):

CodeInvariantTrigger Condition
CONFIG_SCHEMACFG-1Client config.json violates the Appendix A.3 JSON Schema (conformance/schemas/config.schema.json).
CONFIG_ROUTE_OVERLAPCFG-2Two routes on the same listener have ambiguous/overlapping HTTP method + path templates.
CONFIG_GATE_MESSAGE_MISMATCHCFG-3A route attaches a gate incompatible with its DSP message type (e.g., agreement_admission on ContractRequestMessage).
CONFIG_CREDENTIALS_UNREADABLECFG-4The file referenced in trust.credentials does not exist or cannot be read.
CONFIG_UPSTREAM_MISSINGCFG-5A route uses dsp-ingress or mgmt-ingress without the corresponding upstreams.dsp or upstreams.management URL.

5. Client Synchronization & Trust Codes (C-CLI)

CodeStepSeverityRequirementTrigger Condition
SYNC_UNREACHABLES1errorREQ-CLI-004Network failure or HTTP 5xx when polling GET /v1/versions.
SYNC_UNAUTHORIZEDS1errorREQ-CLI-004Hub returns 401 or 403 to GET /v1/versions.
SYNC_SIGNATURE_INVALIDS2errorREQ-CLI-004, REQ-CLI-024JCS Ed25519 signature on eunomia.versions/v1 fails verification or kid is unknown after refresh.
SYNC_DID_UNRESOLVABLES2errorREQ-CLI-027First boot (no cached DID document) and /.well-known/did.json cannot be resolved or fails V1–V4.
DID_KEY_ROTATEDS2infoREQ-CLI-024Listing is signed with a new kid not in cache, which resolves validly after refreshing the Hub's DID document.
DID_REFRESH_FAILEDS2infoREQ-CLI-027did_ttl elapsed and refreshing /.well-known/did.json failed; client continues using cached DID document.
SYNC_EXPIREDS3errorREQ-CLI-004Listing expires_at is earlier than current client time t.
SYNC_ROLLBACKS4errorREQ-CLI-004Listing sequence is strictly less than the last accepted sequence.
SYNC_SEQUENCE_CONFLICTS4errorREQ-CLI-004Listing has the same sequence as the last accepted listing but different canonical bytes.
SYNC_REVOCATION_DROPPEDS5errorREQ-CLI-004A previously revoked version disappears or has revoked_from: null in the new listing.
SYNC_DATES_CHANGEDS6errorREQ-CLI-004published_at, new_content_from, or enforced_from of a known version was altered.
SYNC_DATES_INVALIDS7errorREQ-CLI-004A version entry violates lifecycle date ordering or propagation_window.
SYNC_MANIFEST_DIGEST_MISMATCHS8errorREQ-CLI-006Downloaded manifest.json bytes do not match the ni:///sha-256;... digest in the listing.
SYNC_MANIFEST_SIGNATURE_INVALIDS9errorREQ-CLI-006, REQ-CLI-024Ed25519 JCS signature on manifest.json is invalid.
SYNC_RECEIPT_INVALIDS10errorREQ-CLI-006Transparency log receipt (manifest.receipt) fails verification.
SYNC_FILE_HASH_MISMATCHS11errorREQ-CLI-007Downloaded package artifact bytes do not match the SHA-256 digest in manifest.files[].
SYNC_FILE_SET_MISMATCHS12errorREQ-CLI-007Package contains an extra unreferenced file or is missing a required file.
SYNC_INCOHERENTS13errorREQ-CLI-007Mismatch in space or version between the listing entry, manifest.json, and space-lock.json.

6. Edge Classification, Agreement & Audit Codes (C-CLI)

CodeChannelSeverityRequirementTrigger Condition
CLIENT_NOT_READYclassificationerrorREQ-CLI-002Request arrives on an enforce route while the client is still in onboarding (before first sync).
CLIENT_DEGRADED_REJECTclassificationerrorREQ-CLI-018Client is in degraded state and lifecycle.degraded[gate] is configured as "reject".
CLIENT_FAIL_CLOSEDclassificationerrorREQ-CLI-018, REQ-SYS-008Client is in fail_closed state (t >= expires_at + max_staleness).
NO_VERSION_IN_FORCEclassificationerrorREQ-CLI-011Effective version set V_t is empty at instant t (e.g., only version is still Announced).
MESSAGE_UNPARSEABLEclassificationerrorREQ-CLI-011DSP message body is malformed JSON or missing required JSONPath selection target.
CONTEXT_NOT_IN_PACKAGEclassificationerrorREQ-CLI-010Message @context references a profile URI not declared in the verified package manifest.
VERDICT_VIOLATIONclassificationerrorREQ-CLI-011Payload fails validation against a mandatory slot in all versions of V_t.
VERDICT_NOT_IN_HEADclassificationwarningREQ-CLI-011Payload fails in the head version but passes in a prior Transition (in-grace) version of V_t.
VERDICT_RECOMMENDED_NONCONFORMANTclassificationinfoREQ-CLI-011Payload fails validation in a slot whose binding obligation is recommended.
VERDICT_SHACL_WARNINGclassificationinfoREQ-CLI-011Payload passes mandatory shapes in head but triggers a sh:Warning (e.g., uses a deprecated term).
ROUTE_DEFAULT_REJECTclassificationerrorREQ-CLI-022Request path matches no configured route and default_action is "reject".
AGREEMENT_VERSION_REVOKEDclassificationerrorREQ-CLI-016Transfer request references an agreement whose vocabulary version has reached revoked_from + lease_margin.
AGREEMENT_UNKNOWNclassificationerror|infoREQ-CLI-016Transfer request references an unknown agreementId (reject if unknown_agreement: "reject", info if "forward").
AGREEMENT_PROFILE_MISMATCHeventinfoREQ-CLI-015Captured agreement declares an odrl:profile version that differs from space-lock.json.
AGREEMENT_REVOCATION_SCHEDULEDeventinfoREQ-CLI-016Synced listing introduces a revocation for a version that has active registered agreements.
AUDIT_WILL_WARNeventinfoREQ-CLI-023Passive catalog audit detects a dataset offer using a term that an upcoming version deprecates.
AUDIT_WILL_REJECTeventinfoREQ-CLI-023Passive catalog audit detects a dataset offer that fails against an upcoming Announced version.
CLOCK_SKEW_EXCEEDEDeventinfoREQ-CLI-025Estimated clock offset between alexandria-client and alexandria-server exceeds clock_skew.

On this page