Skip to main content

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

CodeMeaningAction
400Invalid JSON, field, parameter or rejected requestCorrect the request; do not retry it unchanged
401Missing, invalid, expired or revoked keyCheck Authorization: Bearer <key> and the intended environment
403The account or key cannot use the requested product or routeCheck GET /v1/models and the account's enabled products
404Incorrect route or unavailable resourceCheck the current documentation and identifier
413Request body is too largeReduce or split the input
422A supported route rejected the submitted structureRead the issues and correct the body
429A request, capacity or account limit was reachedWait and retry with increasing delay
500, 502, 503Temporary service-side problemRetry 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.