Source: https://ailoot.ai/docs/pl/errors/
Canonical: https://ailoot.ai/docs/pl/errors/
Language: pl

[Pomoc](https://ailoot.ai/docs/pl/) 

# Błędy i limity

[Markdown](https://ailoot.ai/docs/pl/errors/index.md)

Kody odpowiedzi, ich znaczenie i zalecane działania. Wszystkie błędy mają format JSON i zawierają Request ID.

## [](https://ailoot.ai/docs/pl/errors/#format)Format błędu

Błąd jest zwracany w formacie wywołanego API: obiekt `error` dla OpenAI, `{"type": "error", "error": {...}}` dla Anthropic i `error` z polami `status` i `details` dla Gemini. Dlatego SDK rozpoznają je jako zwykłe błędy API.

- `error.code` i `error.reason` — klasa błędu z poniższej tabeli; ich wartości są takie same. `error.type` — standardowa wartość dla danego formatu (na przykład `invalid_request_error` lub `server_error`).
- `error.request_id` (w Anthropic — `request_id` na najwyższym poziomie), nagłówek `X-Request-ID` i końcówka treści komunikatu — identyfikator żądania.
- W Gemini klasa znajduje się w `error.details`: `ErrorInfo.reason` — ten sam kod zapisany wielkimi literami (na przykład `MODEL_OVERLOADED`), `domain` — `ailoot.ai`; identyfikator żądania — w `RequestInfo.requestId`.
- W formacie Gemini błąd 5xx, którego nie wolno automatycznie ponawiać, oraz `result_pending_check` są zwracane ze statusem 409 i `status` `ABORTED`: dzięki temu Gemini SDK i CLI nie ponawiają ich samodzielnie. Klasa błędu znajduje się w `ErrorInfo.reason` (na przykład `MODEL_TIMEOUT` lub `RESULT_PENDING_CHECK`).
- Odpowiedź w formacie OpenAI zawiera również pola najwyższego poziomu `code` i `message` — dla starszych aplikacji klienckich.

```json
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}
```

```json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "code": "invalid_api_key",
    "reason": "invalid_api_key",
    "message": "… Nothing was charged. … Request ID: 94ed3e31-4373-41ce-bf8a-0d1ed3f7235e."
  },
  "request_id": "94ed3e31-4373-41ce-bf8a-0d1ed3f7235e"
}
```

```json
{
  "error": {
    "code": 401,
    "status": "UNAUTHENTICATED",
    "message": "The API key is not valid. Nothing was charged. … Request ID: e7aa743b-9d0d-4064-b206-2562609f545b.",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "INVALID_API_KEY",
        "domain": "ailoot.ai",
        "metadata": {
          "code": "invalid_api_key",
          "reason": "invalid_api_key",
          "request_id": "e7aa743b-9d0d-4064-b206-2562609f545b"
        }
      },
      {
        "@type": "type.googleapis.com/google.rpc.RequestInfo",
        "requestId": "e7aa743b-9d0d-4064-b206-2562609f545b"
      }
    ]
  }
}
```

„Nothing was charged” oznacza, że pieniądze nie zostały pobrane. Jeśli otrzymasz X-Should-Retry: false — nie ponawiaj żądania automatycznie; najpierw sprawdź Request ID w historii.

## [](https://ailoot.ai/docs/pl/errors/#codes)Kody błędów

| HTTP | Klasa (reason) | Co się stało | Co zrobić |
| --- | --- | --- | --- |
| 400 | `invalid_request` | Żądanie jest nieprawidłowe: błędna treść lub parametr; model nie obsługuje pola, załącznika lub narzędzia z żądania; klucz przekazano w adresie | Popraw żądanie zgodnie z treścią błędu: usuń nieobsługiwane pole, załącznik lub narzędzie; klucz przekazuj w nagłówku. Odrzucenie z powodu nieobsługiwanego pola, załącznika lub narzędzia następuje przed utworzeniem rezerwy — nic nie pobrano |
| 400 | `context_length_exceeded` | Żądanie przekracza długość kontekstu modelu | Skróć historię lub wybierz model z większym kontekstem |
| 400 | `content_policy_violation` | Żądanie odrzucono zgodnie z zasadami modelu | Przeformułuj żądanie |
| 401 | `invalid_api_key` | Brak klucza lub klucz jest nieprawidłowy | Sprawdź, czy przekazano cały klucz |
| 401 | `api_key_disabled` | Klucz jest wyłączony | Włącz klucz lub utwórz nowy |
| 402 | `insufficient_balance`, `insufficient_quota` | Wolne saldo nie wystarcza nawet na minimalną rezerwę (`insufficient_quota` — ten sam przypadek w formie stosowanej przez OpenAI SDK) | Doładuj saldo lub zmniejsz max\_tokens |
| 402 | `api_key_quota_exhausted` | Wyczerpano całkowity limit wydatków klucza | Zwiększ limit klucza w panelu |
| 402 | `payment_disputed` | Na koncie jest zadłużenie z tytułu zakwestionowanej płatności | Nowe żądania są wstrzymane do spłaty — skontaktuj się z pomocą techniczną |
| 403 | `api_key_expired` | Klucz wygasł | Utwórz nowy klucz |
| 403 | `account_inactive` | Twoje konto jest wyłączone | Skontaktuj się z pomocą techniczną |
| 403 | `permission_denied` | Klucz nie ma uprawnień do tego żądania (na przykład ze względu na IP) | Sprawdź ograniczenia klucza |
| 404 | `model_not_found` | Taki model nie istnieje | Porównaj ID z /v1/models |
| 404 | `unsupported_endpoint` | Model nie działa w tym formacie | Wybierz inny format lub model |
| 404 | `not_found` | Taka ścieżka lub taki obiekt nie istnieje (na przykład zadanie) | Sprawdź adres i identyfikator |
| 409 | `duplicate_request` | Operacja z tym samym kluczem idempotencji została już przyjęta i mogła się już zakończyć | Sprawdź wynik pierwszej operacji; nie wysyłaj nowej |
| 409 | `not_ready`, `video_not_ready` | Wideo lub inne zadanie nie jest jeszcze gotowe | Sprawdź status później |
| 409, 503 | `result_pending_check` | Ustalamy wynik żądania. W przypadku zadania wideo jest to flaga `result_pending_check: true` w odpowiedzi ze statusem; samo zadanie pozostaje w stanie `in_progress` | Nie wysyłaj żądania ponownie — status pojawi się w historii (GET https://ailoot.ai/api/v1/usage). Nie twórz zadania wideo od nowa: sprawdź je później przez GET /v1/videos/{id} |
| 410 | `model_retired` | Model wycofano z obsługi | Wybierz nową wersję z GET /v1/models |
| 413 | `request_too_large` | Treść żądania jest zbyt duża | Zmniejsz pliki lub skróć historię |
| 429 | `rate_limit_exceeded`, `gateway_concurrency_limit`, `gateway_queue_full` | Z Twojego konta wysłano zbyt wiele żądań lub zbyt wiele żądań jednocześnie | Poczekaj (nagłówek `Retry-After`, zwykle 10 s) i ponów żądanie |
| 429 | `usage_limit_reached` | Wyczerpano limit wydatków klucza w oknie czasowym (5 godzin, 1 dzień lub 7 dni) | Poczekaj na odnowienie okna lub zwiększ limit klucza |
| 500 | `internal_error` | Błąd Ailoot | Skontaktuj się z pomocą techniczną, podając Request ID |
| 502 | `invalid_model_response`, `empty_response`, `incomplete_response` | Model zwrócił nieprawidłową, pustą lub niepełną odpowiedź | Znajdź Request ID w historii panelu konta. Jeśli jest tam wynik lub obciążenie, ponowienie utworzy drugie płatne żądanie. Brak wpisu nie potwierdza, że żądanie nie zostało wysłane lub wykonane: nie ponawiaj wysyłki o nieznanym statusie; skontaktuj się z pomocą, podając Request ID. |
| 502 | `result_not_delivered` | Wynik nie został dostarczony z winy Ailoot; rezerwa lub pobrana kwota zostały zwrócone | Żądanie można wysłać ponownie |
| 503 | `model_overloaded` | Model jest chwilowo przeciążony | Jeśli X-Should-Retry: true — ponów po Retry-After sekundach; jeśli false — najpierw sprawdź Request ID w historii |
| 503 | `model_unavailable` | Model jest chwilowo niedostępny | Wybierz inny model. Jeśli X-Should-Retry: true — ponów żądanie po liczbie sekund wskazanej przez Retry-After; jeśli false — najpierw sprawdź Request ID w historii |
| 503 | `service_unavailable` | Chwilowa awaria po stronie Ailoot | Jeśli X-Should-Retry: true — ponów po Retry-After sekundach; jeśli false — najpierw sprawdź Request ID w historii |
| 503 | `charge_not_confirmed` | Odpowiedź nie została wydana: nie udało się potwierdzić pobrania opłaty; rezerwa została zwrócona, pieniędzy nie pobrano | Jeśli X-Should-Retry: true — ponów po Retry-After sekundach; jeśli false — najpierw sprawdź Request ID w historii |
| 504 | `model_timeout` | Model nie odpowiedział na czas; wynik może się jeszcze pojawić | Nie wysyłaj żądania ponownie, dopóki nie sprawdzisz Request ID w historii |

Kody dotyczące odpowiedzi modelu i sprawdzania wyniku (502, 503 i 504) wskazują teraz model lub żądanie: `model_unavailable`, `model_timeout`, `invalid_model_response`, `incomplete_response`, `charge_not_confirmed` i `result_pending_check`. Jeśli Twój kod porównuje `error.code` z poprzednimi wartościami, zastąp je kodami z tabeli; informacje o powiązaniu dawnych kodów z nowymi poda [pomoc techniczna](https://ailoot.ai/docs/pl/support/).

## [](https://ailoot.ai/docs/pl/errors/#retry)Kiedy ponawiać żądanie

- **Najpierw sprawdź X-Should-Retry**: przy `false`, `result_pending_check` lub `model_timeout` nie ponawiaj żądania automatycznie. Znajdź Request ID w historii panelu: widać tam wynik i pobraną opłatę.
- **Ponowienie jest bezpieczne, gdy otrzymasz X-Should-Retry: true**: poczekaj `Retry-After` sekund. W przypadku 5xx sam kod nie wystarcza: wynik mógł już się pojawić. Najpierw sprawdź historię w panelu lub skontaktuj się z pomocą techniczną, podając Request ID. To szczególnie ważne w przypadku obrazów, wideo, muzyki i długich kroków agentów.
- **Ponowienie nie pomoże**: 400, 401, 402, 403, 404 — najpierw popraw żądanie, klucz lub saldo.

SDK OpenAI i Anthropic zwykle automatycznie ponawiają żądania po błędach sieciowych i 5xx. Przy generowaniu wyłącz tę funkcję (`max_retries=0`) i sprawdzaj `X-Should-Retry` przed kolejną próbą. Utrata odpowiedzi nie oznacza, że żądanie nie zostało wykonane.

## [](https://ailoot.ai/docs/pl/errors/#limits)Limity

Częstotliwość i liczba jednoczesnych żądań są ograniczone dla całego konta, a nie pojedynczego klucza. Po przekroczeniu limitu otrzymasz 429 `rate_limit_exceeded` z nagłówkiem `Retry-After: 10`. Jeśli przeciążony jest sam model — 503 `model_overloaded` z `Retry-After: 30`. Jeśli potrzebujesz większej przepustowości, skontaktuj się z [pomocą techniczną](https://ailoot.ai/docs/pl/support/).

Limity wydatków ustawia się dla klucza: całkowity limit — 402 `api_key_quota_exhausted`, okna 5 godzin, 1 dzień i 7 dni — 429 `usage_limit_reached`. Więcej informacji — [Klucze i adres API](https://ailoot.ai/docs/pl/keys/#key).

## [](https://ailoot.ai/docs/pl/errors/#nvidia)Modele NVIDIA: kolejka

Listę modeli można pobrać także przy zerowym saldzie; generowanie wymaga salda wystarczającego na rezerwę. Modele NVIDIA (Nemotron i inne) korzystają ze wspólnej kolejki: przy dużym obciążeniu odpowiedź może nadejść później albo zostanie zwrócony błąd „model jest chwilowo przeciążony” z nagłówkiem Retry-After — ponów żądanie po wskazanym czasie. Ceny są w katalogu, a opłaty pobiera się tak jak dla pozostałych modeli.

Limity rozmiaru zależą od modelu: kontekst (ile tokenów można wysłać) i maksymalna długość odpowiedzi. Są podane w [katalogu](https://ailoot.ai/models/pl/).

## Historia i wydatki

[Historia i wydatki](https://ailoot.ai/usage) · [GET https://ailoot.ai/api/v1/usage](https://ailoot.ai/docs/pl/cabinet/usage/) · JWT · `Authorization: Bearer $TOKEN`

`JWT ≠ sk-…` · [Logowanie i sesje](https://ailoot.ai/docs/pl/cabinet/auth/)

Dodatkowe pytania? Prześlij Request ID i opis — pomożemy wyjaśnić sprawę.[Napisz do wsparcia](mailto:support@ailoot.ai)

## Ailoot · Firma i jej portfel projektów





Ailoot opiera się na zgromadzonym doświadczeniu operacyjnym, szerokiej bazie klientów, stabilnej usłudze i stałej kontroli KPI.





Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.





Ailoot wykorzystuje to doświadczenie operacyjne, zapewniając dostęp przez API do funkcji AI w produktach klientów, agentach, aplikacjach i automatyzacjach.
