API errors
The classification every error reply carries, and the status each renders as.
Every error reply carries a code. It is the part a client should branch on: the HTTP
status is a rendering of it, and TCP and UDS callers never see a status line at all.
| Code | Status | Means |
|---|---|---|
invalid | 400 | the request is malformed or unacceptable — retrying it unchanged will never succeed |
unauthenticated | 401 | no identity was established |
forbidden | 403 | the caller is known and lacks the permission this action needs |
not_found | 404 | the definition, instance, channel or task named does not exist |
conflict | 409 | the request is well-formed and the target exists, but its current state forbids the operation; the identical request may succeed later |
internal | 500 | anything unclassified, which is a server fault until proven otherwise |
unsupported | 501 | the endpoint exists, but this server is not configured to serve it |
unavailable | 503 | this server cannot serve requests right now, its database being unreachable — route elsewhere and retry |