Błędy i limity szybkości
Co oznacza każdy kod statusu i co z nim zrobić.
Format błędu
Błędy wracają jako JSON w formacie błędu OpenAI. Komunikat opisuje, co się stało, code to stabilny, czytelny maszynowo identyfikator, a do każdego komunikatu dołączany jest identyfikator żądania:
{
"error": {
"message": "Model \"gpt-5.5-typo\" is not offered here. Check the model name for typos, or switch to a model from our supported list. (request id: 20260705...)",
"type": "new_api_error",
"code": "model_not_found"
}
}Zawsze podawaj identyfikator żądania, gdy kontaktujesz się z pomocą techniczną lub otwierasz zgłoszenie na Discordzie. Pozwala nam to znaleźć twoje dokładne żądanie w logach.
Kody statusu w skrócie
Kody statusu, które faktycznie napotkasz:
| Kod | Znaczenie | Co zrobić |
|---|---|---|
400 | Nieprawidłowe żądanie: błędne wartości parametrów (na przykład max_tokens poniżej minimum modelu) lub prompt zablokowany przez moderację treści. | Popraw żądanie. Ponowienie bez zmian znów się nie powiedzie. |
401 | Problem z kluczem: brakujący, nieprawidłowy, wygasły lub wyłączony klucz API. | Sprawdź nagłówek Authorization i swój klucz na stronie Tokeny. |
402 | Własny limit wydatków tego klucza został wyczerpany. | Podnieś limit klucza lub utwórz nowy klucz. |
403 | Odmowa dostępu: puste saldo konta, model niedozwolony dla tego klucza lub twój adres IP nie znajduje się na liście dozwolonych klucza. | Doładuj lub sprawdź ograniczenia modelu i IP klucza. |
413 | Żądanie zbyt duże dla limitu darmowej wersji próbnej tego modelu. | Skróć prompt lub przełącz się na model płatny. |
429 | Zadziałał limit szybkości (patrz rodzaje poniżej). | Odczekaj liczbę sekund z Retry-After, a następnie ponów lub zmień model. |
500 | Coś zawiodło po naszej stronie lub u dostawcy upstream. | Ponów po krótkim odczekaniu; uporczywe 500 warto zgłosić. |
503 | Wszyscy dostawcy dla modelu są zajęci lub nazwa modelu nie istnieje. | Przeczytaj komunikat: zajętość mija w kilka minut, literówka nie. |
503: zajęty kontra nieznany model
Dwie bardzo różne sytuacje dzielą status 503. Pierwsza to tymczasowe przeciążenie:
HTTP/1.1 503 Service Unavailable
{
"error": {
"message": "All providers for model \"kimi-k2.6:free\" are busy right now (they hit their rate limit). This is not a spelling error. Please try again in a little while, or switch to another model. (request id: 20260705...)",
"type": "new_api_error",
"code": "get_channel_failed"
}
}Kod get_channel_failed (wszyscy dostawcy zajęci) oznacza, że każdy darmowy dostawca dla tego modelu jest chwilowo ograniczony limitem szybkości. Odzyskuje sprawność sam w ciągu kilku minut: ponów lub zmień model. Kod model_not_found (nieoferowany tutaj) oznacza, że sama nazwa modelu się nie rozwiązuje, a ponawianie nigdy nie pomoże. Sprawdź literówki lub odszukaj aktualną nazwę w katalogu.
Traktuj 503 z get_channel_failed jako ponowienie lub przełączenie awaryjne, a 503 z model_not_found jako twardy błąd w swoim kliencie.
Rodzaje limitów szybkości
429 może pochodzić z kilku warstw:
- Nasz limit darmowych modeli: 1 żądanie na minutę na darmowy model na użytkownika. Limit sprawiedliwości, aby współdzielone pule przetrwały godziny szczytu.
- Limity dostawcy upstream: dostawca stojący za darmowym modelem osiągnął własny limit ("temporarily rate-limited upstream", czyli tymczasowo ograniczony limitem szybkości u źródła).
- Dzienne budżety tokenów w niektórych darmowych pulach; resetują się o północy UTC.
- Limity tokenów na minutę uruchamiane przy bardzo dużych promptach.
- Limit współbieżności na użytkownika, gdy zbyt wiele żądań działa równolegle.
Modele płatne nie mają limitów szybkości narzuconych przez UnoRouter.
Limit darmowych modeli w szczegółach
Gdy zadziała nasz limit 1 na minutę, otrzymujesz standardowe nagłówki limitu szybkości, dzięki czemu klienci mogą precyzyjnie wstrzymać ruch:
HTTP/1.1 429 Too Many Requests
Retry-After: 38
X-RateLimit-Limit: 1
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1783198478Retry-After jest dynamiczny: to rzeczywista liczba sekund pozostałych w twoim oknie, a nie stałe 60. Komunikat błędu podaje też płatnego bliźniaka modelu, który nie ma limitu.
Limity rozmiaru wersji próbnej
Niektóre zwykle płatne modele są oferowane za darmo z limitem rozmiaru żądania. Zbyt duże prompty otrzymują 413 z komunikatem takim jak: Request body too large for gpt-4.1 model. Max size: 8000 tokens.
Limit dotyczy tylko trasy darmowej wersji próbnej; model płatny przyjmuje prompty pełnej długości.
Wskazówki dotyczące ponawiania
Respektuj Retry-After przy 429. Ponów 503 get_channel_failed po krótkim odczekaniu lub przejdź na inny model. Nie ponawiaj błędów klasy 400, są deterministyczne.
Żądania nieudane i odrzucone nie są naliczane: każda wstępna blokada na twoim saldzie jest zwracana, gdy żądanie zwróci błąd.