Error Codes
Errors are returned as { "code": "…", "message": "…" }.
| Code | HTTP | Meaning |
|---|---|---|
unauthenticated | 401 | No valid credential (API key, JWT, or client cert) |
unauthorized | 403 | The subject may not perform this action on this hive/path |
invalid_hive | 400 | Unknown hive name |
invalid_path | 400 | Path is malformed or violates a predefined level (e.g. an environment not in dev/uat/prod) |
invalid_source | 400 | Named source is unknown or misconfigured |
ambiguous_source | 409 | More than one writable source owns the path — disambiguate with ?source=<name> |
not_found | 404 | No value at the path |
conflict | 409 | If-Match version mismatch (optimistic concurrency) |
schema_validation_failed | 422 | The value failed the hive’s CUE schema |
structural_validation_failed | 400 | The document violates a structural rule |
method_not_allowed | 405 | Operation not allowed here (e.g. a write under /_meta) |
audit_emission_failed | 503 | The audit sink is unreachable — writes fail closed rather than proceed unaudited |
source_write_failed | 502 | The backing source rejected the write |
storage_failed | 500 | Snapshot store error |
unavailable | 503 | Service not ready (first reconcile pass not complete) |
internal_error | 500 | Unexpected server error |
See also Operations → Failure modes.