---
title: "Limits and errors"
description: "Rate, concurrency and monthly limits, rate-limit headers, and what each error means."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.ezghcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits and errors

## Limits

| Limit | Default | Over it |
| --- | --- | --- |
| Requests per minute, per project | 600, bursts of up to 100 | `429 too_many_requests` with `Retry-After` |
| Input tokens per minute, per organization | 1,000,000 | `429 too_many_requests` with `Retry-After` |
| Concurrent requests, per organization | 4 | `429 too_many_requests` with `Retry-After` |
| Input tokens per UTC month, per organization | 100,000,000 | `429 insufficient_quota`, until the next UTC month |

A request's input tokens count once it has finished. To see the limits in force for a project,
open **Service quotas** in the console, run `ezgh inference limits --project <project>`, or
[read them from the API](/inference-api/GetLimits/) (`inference.limits.read`). To raise a
limit, contact support.

Each model also has per-request limits, its properties in the [catalog](/inference/models): for
`qwen3-embedding-0.6b`, 128 inputs per request, 8,192 tokens per input and a 1 MiB body.

## Rate-limit headers

Responses carry OpenAI's rate-limit headers, for the project's requests and the organization's
input tokens per minute:

| Header | Value |
| --- | --- |
| `x-ratelimit-limit-requests`, `x-ratelimit-limit-tokens` | The limit per minute |
| `x-ratelimit-remaining-requests`, `x-ratelimit-remaining-tokens` | What's left now |
| `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` | How long until it's back to the limit |

## Errors

Errors use OpenAI's body, with EZGH's stable code in `code`, so the OpenAI SDKs raise their usual
exceptions:

```json
{ "error": { "message": "Input 3 is longer than the model's 8192 tokens", "type": "invalid_request_error", "param": "input[3]", "code": "input_too_long" } }
```

| Status | `type` | `code` | Meaning |
| --- | --- | --- | --- |
| 400 | `invalid_request_error` | `invalid_request` | The request isn't valid; `param` names the field |
| 400 | `invalid_request_error` | `token_input_unsupported` | `input` is token IDs; send text ([LangChain](/inference/embeddings#langchain)) |
| 400 | `invalid_request_error` | `input_too_long` | An input is over the model's tokens per input; `param` is `input[<i>]`, or `input` when the input isn't known |
| 400 | `invalid_request_error` | `dimensions_out_of_range` | `dimensions` is outside the model's range |
| 401 | `authentication_error` | `unauthenticated` | No credential, or one that isn't valid |
| 403 | `permission_error` | `access_denied` | The credential's owner lacks the action on the project |
| 404 | `not_found_error` | `not_found` | No such organization or project, or you aren't in it |
| 404 | `not_found_error` | `model_not_found` | No such model, or it isn't offered by Inference |
| 409 | `invalid_request_error` | `organization_deletion_pending` | The organization is being deleted |
| 410 | `invalid_request_error` | `model_retired` | The pinned version is retired |
| 413 | `invalid_request_error` | `payload_too_large` | The body is over 1 MiB |
| 429 | `rate_limit_error` | `too_many_requests` | A rate or concurrency limit; retry after `Retry-After` |
| 429 | `insufficient_quota` | `insufficient_quota` | The organization's monthly input tokens are used up. It has no `Retry-After`, and `x-should-retry: false` tells the OpenAI SDKs not to retry |
| 500 | `api_error` | `internal_error` | An error on our side; retry |
| 502 | `api_error` | `inference_failed` | The model failed; retry |
| 503 | `api_error` | `capacity_unavailable` | No capacity right now; retry after `Retry-After` |
| 503 | `api_error` | `unavailable` | The service is briefly unavailable; retry after `Retry-After` |
| 504 | `api_error` | `inference_timeout` | The request took longer than 60 seconds |

Nothing is metered for a request that fails.

Source: https://docs.ezghcloud.com/inference/limits/index.mdx
