Errors
REST error shape#
Errors return a 4xx/5xx status and a JSON body:
json
1 2 3 4 5 6 7 | |
field is present when a specific input caused the error. Validation failures (422)
carry a details array under error describing each offending field.
Common status codes#
| Status | Meaning | Typical cause |
|---|---|---|
400 |
Bad request | Wrong state (e.g. version not uploading), invalid argument. |
401 |
Unauthenticated | Missing/invalid token. Sends WWW-Authenticate: Bearer. |
403 |
Forbidden | Authenticated but lacking the required permission. |
404 |
Not found | Resource missing — or hidden by permissions (restricted resources 404 rather than 403). |
409 |
Conflict | Duplicate name/version, or deleting a non-empty namespace. |
416 |
Range not satisfiable | Bad Range header on a file download. |
422 |
Validation error | Body failed schema validation. |
429 |
Rate limited | Too many requests; check retry_after. |
503 |
Unavailable | P2P endpoints when P2P is disabled. |
SDK exceptions#
The SDK raises typed exceptions from scaiatlas.exceptions (the common ones are also
importable from scaiatlas). Catch by class:
gdscript
1 2 3 4 5 6 7 8 9 10 11 12 | |
Handling patterns#
python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
python
1 2 3 4 5 | |
python
1 2 3 4 5 6 | |
Retries#
Transient statuses (408, 429, 500, 502, 503, 504) are retried
automatically with exponential backoff. Tune via RetryConfig
(from scaiatlas._http.retry) passed as retry_config= (or through ClientConfig).