Koperta błędu
Większość odpowiedzi z błędem używa tego kształtu JSON zgodnego z OpenAI:type to szeroka kategoria, code to konkretny identyfikator.
Niektóre awarie na ścieżce szybkiej (zwłaszcza 429 na poziomie
workspace) zwracają tylko kod statusu HTTP z odpowiednimi nagłówkami i
bez ciała JSON.
Kody statusu HTTP
| Status | Znaczenie | Typowa przyczyna |
|---|---|---|
400 | Bad request | Nieprawidłowe parametry, brak wymaganych pól, naruszenie schematu |
401 | Unauthorized | Brak lub nieprawidłowy klucz API |
403 | Forbidden | Niewystarczająca kwota lub klucz nie może wywołać tego modelu |
404 | Not found | Model lub endpoint nie istnieje |
429 | Too many requests | Trafiony rate limit — zobacz Limity zapytań. Odpowiedź zawsze zawiera nagłówek Retry-After. |
500 | Internal error | Błąd po stronie OrcaRouter |
502 | Upstream error | Wszyscy upstreamowi dostawcy zawiedli (włącznie z dowolnym łańcuchem fallback) |
503 | Service unavailable | Żądany model jest tymczasowo niedostępny upstream |
Typy błędów, które możesz zobaczyć w error.type
error.type | Skąd pochodzi |
|---|---|
orcarouter_api_error | Awarie po stronie bramy (auth, kwota, rate-limit, internal) |
upstream_error | Upstreamowy dostawca zwrócił błąd lub timed out |
openai_error | Błąd upstreamu zgodnego z OpenAI zachowany dosłownie |
claude_error | Błąd upstreamu Anthropic zachowany dosłownie |
gemini_error | Błąd upstreamu Gemini zachowany dosłownie |
Kody błędów, które możesz zobaczyć w error.code
To kody wystawiane przez bramę dla awarii pochodzących z OrcaRouter
(nie z upstreamu):
error.code | HTTP | Znaczenie |
|---|---|---|
insufficient_user_quota | 403 | Kredyt konta wyczerpany. Doładuj. |
model_not_found | 503 | Ten model nie jest dostępny dla Twojego konta. |
model_price_error | 400 | Cennik dla tego modelu nie jest skonfigurowany. Skontaktuj się z supportem. |
api_not_implemented | 400 | Endpoint lub operacja nieobsługiwana dla wybranego modelu. |
bad_request_body | 400 | Ciało żądania nie mogło być sparsowane. |
prompt_blocked | 400 | Polityka bezpieczeństwa dostawcy zablokowała prompt przed generacją. |
sensitive_words_detected | 400 | Filtr wrażliwej treści odrzucił prompt. |
error.code
(konkretny), a w razie braku error.type (szeroka kategoria).
Błędy w streamingu
Błędy podczas strumieniowej odpowiedzi nie mogą używać kodów statusu HTTP (status został wysłany przy otwarciu strumienia). Format zależy od endpointu:/v1/chat/completions i /v1/responses (zgodne z OpenAI)
Błąd przychodzi jako in-band fragment data: {...}:
data: jako JSON; jeśli ma pole error, traktuj
strumień jako nieudany.
/v1/messages (zgodne z Anthropic)
Anthropic używa nazwanych zdarzeń SSE. Awaria strumienia przychodzi
jako:
event: message_stop (lub jest urwany) po
zdarzeniu błędu.
Błędy fallback
Gdy ustawione jestextra_body.models, a wszystkie modele w łańcuchu
zawiodą, dostaniesz 502 ze szczegółami ostatniego błędu upstream.
Nagłówki odpowiedzi X-Orca-Fallback-Level i X-Orca-Fallback-Model
wskazują, który fallback był próbowany, gdy łańcuch się wyczerpał.
Zobacz Nagłówki odpowiedzi.