403from an account outside the private beta adds"code": "not_provisioned".502from a failed run adds"kind", naming the failure class.
Status codes
A
504 is a server-side timeout with a JSON body, which is how you tell it apart
from a transport timeout: a transport timeout has no body.
Authentication errors in detail
Albus accepts two credentials, both asAuthorization: Bearer <value>:
GET /health needs no credential.
Retrying safely
Every retry of an invocation must carry theIdempotency-Key of the invocation
it retries. Without a key, a retry is a second invocation, and it spends a second
run against the quota.
- Same key, identical body → re-attaches to the invocation.
- Same key, different body →
409. - New key while an invocation is running →
423. - No key → a fresh invocation; the response’s
Idempotency-Keyheader carries the key the server assigned.
In the SDKs
Every non-2xx status raises a typed error carryingstatus_code, message, and
body — errors.AlbusError and its subclasses in Python, the errors module in
TypeScript. See SDKs for the retry configuration and its
interaction with long-polling runs.