Error Codes
All AtlasCore API errors return a JSON response with a status code and descriptive message.
HTTP status codes
| Status | Code | Meaning | Resolution |
|---|---|---|---|
400 | bad_request | Invalid request parameters or body | Check parameter names, types, and required fields |
401 | unauthorized | Missing or invalid bearer token | Include a valid Authorization: Bearer header |
403 | forbidden | Valid token but insufficient access | Verify pack entitlement for the requested resource |
404 | not_found | Resource does not exist | Check the resource ID, ABN, or slug |
409 | conflict | Operation conflicts with current state | Check for duplicate resources or state conflicts |
422 | validation_error | Request body failed validation | Review the error details for specific field issues |
429 | rate_limited | Rate limit or quota exceeded | Back off and retry; check quota allocation |
500 | internal_error | Unexpected server error | Retry with exponential backoff; contact support if persistent |
502 | upstream_error | External service failure | Retry; the upstream dependency may be temporarily unavailable |
Common error scenarios
Missing pack_id
Most tenant-facing endpoints require pack_id. Omitting it returns:
{
"detail": "pack_id is required for tenant-metered operations"
}
Unknown grid region
Scope 2 factor requests with an invalid grid code return 404:
{
"detail": "No active factor set found for grid 'INVALID'"
}
Valid grid values: NSW1, VIC1, QLD1, SA1, TAS1, SWIS, DKIS, NWIS, off_grid.
Quota exceeded
When a tenant's usage quota is exhausted:
{
"detail": "Quota exceeded for event 'query' in current window"
}
Contact your account administrator to increase quota allocation.
GWP transform failure
AR6 GWP requests fail closed when constituent gas data is insufficient:
{
"detail": "AR6 transform not available: insufficient methane classification metadata"
}
Use gwp_basis=native to retrieve the original NGA values.
Retry guidance
| Error type | Retry? | Strategy |
|---|---|---|
400, 401, 403, 404 | No | Fix the request |
429 | Yes | Exponential backoff with jitter |
500, 502 | Yes | Exponential backoff, max 3 retries |