Errors and retries
Read the HTTP status and JSON error body together. Keep any request or reference identifier returned by the service; it lets support find the matching record without receiving the prompt or complete key.
Status codes
| Code | Meaning | Action |
|---|---|---|
400 | Invalid JSON, field, parameter or rejected request | Correct the request; do not retry it unchanged |
401 | Missing, invalid, expired or revoked key | Check Authorization: Bearer <key> and the intended environment |
403 | The account or key cannot use the requested product or route | Check GET /v1/models and the account's enabled products |
404 | Incorrect route or unavailable resource | Check the current documentation and identifier |
413 | Request body is too large | Reduce or split the input |
422 | A supported route rejected the submitted structure | Read the issues and correct the body |
429 | A request, capacity or account limit was reached | Wait and retry with increasing delay |
500, 502, 503 | Temporary service-side problem | Retry a limited number of times, then contact support |
Retry policy
Retry only 429, temporary 5xx responses and transient network failures. Use a small
maximum attempt count, a total timeout, increasing delays such as 1, 2 and 4 seconds,
and a little random variation when many workers may retry together.
Do not retry an unchanged 400, 401, 403, 404, 413 or 422 request. An
interrupted connection needs care: the request may already have completed and consumed
credit, so an automatic duplicate can create additional work and cost.
What to log
Record the approximate time and timezone, public model, route, status, request or reference identifier, and the key alias, prefix or final four characters. Never log or send the complete key, passwords, confidential prompts, stack traces or internal names.
If a limited retry still fails, contact support@omev.be with a sanitised example and the recorded identifiers.