x-request-id from the reply.
401: the key is not accepted
virtual_key_required. No key reached Altrum. Check that your client sends the key and that the base URL points tohttps://api.altrum.ai. Some clients send the key only when it is set in a particular environment variable: see Coding agents.access_not_found. Altrum does not know the key. It may have been revoked, or a character may be missing. Keys start withsk-alt-. Ask an admin for a new one, or create one under AI Gateway, My keys.
402: a budget is used up
The message names the budget that ran out and when it resets. A budget can belong to the key, its AI system or the whole organization, and any of them can stop the request. Wait for the reset, or ask an owner or admin to raise it under Budgets. See Budgets and rate limits.403: something is not allowed
The code tells you what:access_blocked. The key is switched off or expired.ai_system_inactive. The key belongs to an AI system that is not Live: still in draft, waiting for approval, paused or retired. See Lifecycle.model_blocked. Either the model is not approved in your Model catalog, or the key is limited to other models. The message says which.provider_blocked. Your organization has no credential for that provider, or the key may not use it. See Provider credentials.mcp_tool_blocked. The key may not use that MCP tool. See MCP tools.organization_inactiveorgateway_disabled. Your organization is switched off, or its plan does not include the AI Gateway. See Plans and modules.
400, 413 and 422: a guardrail stopped it
guardrail_blocked(400). A guardrail stopped the request before it reached the model. The message names the guardrail. Test the same text under Test guardrails to see what it found: see Test guardrails.response_blocked(422). The model’s reply was stopped. Your request was fine.payload_too_large(413). The request has more text than the guardrails can check at once. Send less, for example by trimming old messages from a long conversation.
429: too many requests
A rate limit on the key, its AI system or the organization was reached, or your organization has too many requests running at once. Retry with backoff: see Handle errors.503: try again
guardrail_check_failed means Altrum could not check the request against the guardrails, so it did not send it. This is deliberate: an unchecked request never reaches a model. Retry with backoff, and raise a support ticket with the request reference if it keeps happening.