Errors
Failed requests return RFC 9457 Problem Details with a required errors array. Successful lists stay { data, meta }.
- Successful lists return
{ data, meta }. - Failures return
application/problem+jsonwith a requirederrorsarray. Branch on HTTP status; lists have no partial-success envelope. - Official SDKs throw
LurantaProblemError. Readerror.errorsfor parameter issues.
Common responses
| Status | Meaning | Retry |
|---|---|---|
| 400 | Invalid request or pagination token | No |
| 401 | Invalid or revoked API key | No |
| 403 | Insufficient scope | No |
| 402 | Insufficient credit | After top-up |
| 404 | Resource unavailable | No |
| 429 | Organisation rate limit | After Retry-After |
| 503 | Service or usage accounting unavailable | Only when retryable |
Read error.errors
import { Client, LurantaProblemError } from "@luranta/sdk"
try {
await client.jobs.list({ locations: ["Atlantis"] })
} catch (error) {
if (error instanceof LurantaProblemError) {
for (const issue of error.errors) {
console.error(issue.code, issue.message, issue.pointer)
}
}
}from luranta import Client, LurantaProblemError
try:
client.jobs.list({"locations": ["Atlantis"]})
except LurantaProblemError as error:
for issue in error.errors:
print(issue.code, issue.message, issue.pointer){
"type": "https://docs.luranta.com/problems/invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "The pagination token is invalid or expired.",
"instance": "/v0/jobs",
"code": "invalid_request",
"requestId": "019c...",
"retryable": false,
"errors": [
{
"code": "invalid_cursor",
"message": "The pagination token is invalid or expired.",
"pointer": "/query/paginationToken"
}
]
}Network failures are ambiguous
Do not automatically retry an interrupted billable response. Official SDKs surface TransportError so your application can reconcile deliberately.