Errors and limits
Error response shapes, status codes, plan limits, and rate limiting.
Errors and limits Most non 2xx responses from the API fall into one of the shapes below. The dagnam SDK turns each into a typed exception see Python client /docs/dag-lib/python-client errors ; a client in another language should branch on the shape below. Error shapes Default or, for a coded failure: Codes include email not verified , account suspended , account locked , insufficient credits , remote gpu not entitled , job too large , not supported , gone and project required ; see the status table below for which status each carries. The checks run when you start a training job put their text in user message instead of message : insufficient credits 402 , remote gpu not entitled and compute strategy not in tier 403 , and the 422 checks on the job itself, for example invalid architecture and multi node not supported . insufficient credits also carries required credits and available credits . Plan limits A numeric limit for example, storage or training minutes answers 402; a feature your plan does not include answers 403. Both carry this shape at the top level, not nested under detail . Server errors A 5xx response. Include correlation id or the response's X-Request-ID header when you contact Support /support . OpenAI-compatible routes The /v1/... routes use OpenAI's own error shape, and answer 400 for an invalid body instead of 422. See OpenAI-compatible endpoint /docs/deployments/openai-compatible . At capacity A 503 for a platform training job that could not be admitted right now. Wait retry after seconds also sent as Retry-After and try again; some capacity refusals carry only error and message , so back off anyway when neither is present. Status codes Status Meaning ------ ------------------------------------------------------------------------------------------------------------------------------------------------------------- 400 The request cannot be served as sent, for example a file type uploads do not accept or a stream request to a deployment that does not stream. 401 Missing or invalid credential. 402 A numeric plan limit was reached, or the account lacks credits for the job. 403 Email not verified, account suspended, an API key missing the required scope, or a feature, cloud GPU access or training strategy your plan does not include. 404 Not found, or not yours; the API never distinguishes the two. 409 A conflicting request is already in progress, or the action is not supported. 410 The route was removed gone . 413 The request or an uploaded file exceeded the size limit, or the file would not fit in your storage quota. 422 The request body failed validation, or the action does not apply to this resource. 423 The account is temporarily locked after repeated failed sign ins. 429 Rate limited; honor Retry-After . 503 At capacity right now; honor retry after seconds when present. A plain validation error outside the shapes above a malformed field on an otherwise normal route answers 422 with a detail list of per-field messages. Plan limits A response's current plan , required plan , usage , limit and remediation hints describe the limit. See Billing & usage /pay in the app for your account's live numbers, and Account and plans /docs/getting-started/account for what each plan includes. Rate limiting A rate-limited request answers 429 with an "error": "..." body and a Retry-After header, in seconds. Wait at least that long before retrying; the dagnam SDK does this for you automatically. This API does not send X-RateLimit- headers.
Open in Dagnam.AI docs