error object. HTTP status and
error.code are stable. error.message is human-readable and may be
reworded at any time.
The error envelope
Error types
Two failures share HTTP
429 and call for opposite responses. A
rate_limit means you are asking too fast, so back off and retry. A
quota_exceeded means a ceiling is full, and backing off will not help
until something already running finishes.
Inference codes
Inputs resolve before roles are checked, so a bad asset is reported ahead
of an illegal combination.
param points at the offending input as a
dot-path, such as reference.0 for arrays.
A generation that fails after the 202 records the failure on the run,
where status is failed and error appears on GET /v1/runs/{id}.
/status returns a normal response describing the failed run, not a
second HTTP error.
Session codes
Rate limits and retries
429 and 503 responses may include Retry-After in seconds. Use that
delay before retrying. Submitting runs too quickly returns
run.rate_limited, and starting sessions too quickly returns
session_start_rate_limited. A full ceiling clears when an active run
finishes, which /status tracks. Monitor queued runs there rather than
resubmitting them. A retry with a changed body needs a new
Idempotency-Key.
Quota exhaustion
error.code names whichever resource ran out. Credits return 402 with
insufficient_credit_balance. Runtime ceilings such as concurrent
sessions return 429.
Incidents
Active incidents are posted at status.protoface.com. If a request fails unexpectedly and nothing is listed there, contact support with therequest_id from
the error response.
