Wire error codes
Every non-success return carries exactly one code from this closed set, and each code maps to exactly one of the four error classes — schema (the call is malformed), refused (refused by principle), finding (a graded domain finding), or internal (a server defect).
| Code | Class | Cause |
|---|---|---|
bad-frame | schema | a malformed envelope |
unknown-op | schema | an operation or tool the contract does not define |
schema-violation | schema | a payload that violates its op/tool schema |
unknown-doc | schema | a reference to a workspace, fork, or entity that does not exist |
unstratifiable | finding | a negative-dependency cycle caught at load (FRONT-1) |
contradiction | finding | a claim that contradicts the projection |
stale-fence | refused | expected_digest did not match the current fence |
materialize-blocked | refused | author.materialize called with error-class findings open |
killed-form | refused | a killed or renamed op/tool; the message names the successor |
not-wired | refused | a recognized op whose engine is not wired in this build (capability-gated) |
version-mismatch | refused | a well-formed frame declaring a contract version this build does not speak |
conflict | refused | an idempotency_key reused with a different payload (distinct from stale-fence) |
project-required | refused | a durable evidence operation called without a caller project |
evidence-corrupt | internal | committed evidence failed canonicalization, digest, or lineage verification |
temporal-indeterminate | refused | the requested temporal projection needs unresolved ordering |
internal | internal | a server defect |