Errors
Non-2xx responses carry a JSON error envelope with a human-readable message, an error type, and — where applicable — a machine-readable code (validation errors leave code null). The rare exception is a gateway-level timeout, which returns plain HTML.
Cura 1T is a research model, not a medical service, and not a substitute for a clinician. Benchmark scores do not establish safety for unsupervised clinical use.
Error envelope
JSON
{ "error": { "message": "Invalid or expired API key", "type": "invalid_request_error", "param": null, "code": "invalid_api_key" }}400 — Bad request
The request body failed validation before reaching the model.
- Malformed JSON, or a message missing role/content
- An unsupported field — the validator rejects extra inputs (e.g. "Extra inputs are not permitted, field: 'messages[2].partial'")
- An image_url part that is not a valid data: URI, or an https URL the gateway cannot download
401 — Authentication error
The Authorization header is missing, malformed, or the key is invalid.
- Missing 'Authorization: Bearer $ACTAVA_API_KEY' header
- A revoked or mistyped key — check for stray whitespace when exporting the env var
403 — Permission error
The key is valid but not entitled to this resource.
- The key's grant doesn't include the requested model id
404 — Not found
The route or model id doesn't exist.
- A typo in the path — only /v1/models and /v1/chat/completions are served; any other route returns 404 with code NO_RULE_MATCHED
- A model value other than "actava/cura-soar" (code model_not_found)
429 — Rate limit
Too many requests or tokens in the current window.
- Back off exponentially and retry; contact us for higher throughput commitments
500 / 502 / 504 — Server errors
Transient service-side failures.
- Retry with exponential backoff; if persistent, contact support with the request id
- 502 upstream_error — the inference provider behind the gateway failed; retryable
- An empty messages array currently hangs and times out as an HTML 504 rather than a fast 400 — always send at least one message
Troubleshooting tips
- Log the full error envelope, not just the HTTP status — the code disambiguates.
- Retry only idempotent situations: 429 and 5xx with backoff. Don't retry 400s — fix the request.
- For streaming requests, errors after the stream opens arrive as a terminal SSE event — handle both paths.