Problem types
| Code | HTTP | Meaning |
|---|---|---|
invalid-request | 400 | Body or parameters fail the schema. |
unsupported-version | 400 | Major version not supported. |
unauthenticated | 401 | Credentials missing or invalid. |
insufficient-clearance | 403 | Clearance or scope too low. |
capability-not-allowed | 403 | This kind of caller may not make this request: the capability's or operation's callers excludes it, the request needs a human (such as deciding, raising the autonomy ceiling max or adopting a Playbook), or the approver is the Action's initiator. |
presence-required | 403 | Approving, or a person's destructive or physical action, needs proof of presence for this Action's digest (6.3). |
presence-invalid | 403 | The proof of presence did not verify (6.3). |
token-not-bound | 401 | Over a network, the token must be bound to the caller's key (8.2). |
signature-required | 403 | A Connected or Full system must sign the Card it joins with (10.1). |
signature-invalid | 403 | The Card's signature does not verify (10.1), a brain lease or signal is not signed with the pinned Command Center key or is for another system (7.4), or an update's manifest or payload does not verify (13.2 rule 4). |
identity-changed | 409 | The system joined before with a different identity key (10.1). |
valve-blocked | 403 | The Valve refused to release the data. |
autonomy-stopped | 409 | Refused because autonomous action is stopped. |
guard-failed | 409 | A guard or interlock refused the command (Section 14.4). |
caller-not-allowed | 403 | A Proposal names a target whose callers excludes ai (Core Standard 7.3). It is used only for Proposals: a caller's own request gets capability-not-allowed. |
not-found | 404 | No such resource, or the caller may not know it exists, such as a property above the caller's clearance, for reading and for writing. |
conflict | 409 | Invalid state, such as deciding a finished action, an actionId that was already used (6.3), or writing a read-only property. |
idempotency-conflict | 422 | Key reused with a different body. |
out-of-range | 422 | A value is outside the allowed range or envelope (13.2). |
cannot-undo | 422 | A Trial was refused because its change cannot be undone, or the current value is unknown (13.2). |
budget-exceeded | 429 | AI cost limit reached. |
rate-limited | 429 | Too many requests. |
internal-error | 500 | Unexpected failure. |
native-failed | 502 | The device or native protocol returned an error. |
native-timeout | 504 | The device did not answer in time. |
not-implemented | 501 | Above this system's level. |
model-unavailable | 503 | No permitted model can answer. |
system-unreachable | 503 | A HEART Gateway could not reach the hosted system. |
These are errors from the HEART API. A problem on a device has a fault code instead, such as HEART storage.full (H-04002):
see every fault code, by H-number.