Fehlerhülle
Die meisten Fehlerantworten verwenden diese OpenAI-kompatible JSON-Form:type ist eine breite Kategorie, code ist ein spezifischer
Identifier. Einige Schnellpfad-Fehler (insbesondere 429er auf
Workspace-Ebene) geben nur einen HTTP-Statuscode mit den relevanten
Headern und keinen JSON-Body zurück.
HTTP-Statuscodes
| Status | Bedeutung | Typische Ursache |
|---|---|---|
400 | Ungültige Anfrage | Ungültige Parameter, fehlende Pflichtfelder, Schema-Verletzung |
401 | Nicht autorisiert | Fehlender oder ungültiger API-Schlüssel |
403 | Verboten | Unzureichendes Kontingent oder der Schlüssel kann dieses Modell nicht aufrufen |
404 | Nicht gefunden | Modell oder Endpunkt existiert nicht |
429 | Zu viele Anfragen | Ratenlimit erreicht — siehe Ratenlimits. Die Antwort enthält immer einen Retry-After-Header. |
500 | Interner Fehler | OrcaRouter-seitiger Bug |
502 | Upstream-Fehler | Alle Upstream-Anbieter sind fehlgeschlagen (einschließlich jeder Fallback-Kette) |
503 | Dienst nicht verfügbar | Das angeforderte Modell ist im Upstream vorübergehend nicht verfügbar |
Fehlertypen, die du in error.type sehen kannst
error.type | Woher es kommt |
|---|---|
orcarouter_api_error | Gateway-seitige Fehler (Auth, Kontingent, Rate, intern) |
upstream_error | Der Upstream-Anbieter hat einen Fehler zurückgegeben oder ist ausgelaufen |
openai_error | OpenAI-kompatibler Upstream-Fehler wörtlich erhalten |
claude_error | Anthropic-Upstream-Fehler wörtlich erhalten |
gemini_error | Gemini-Upstream-Fehler wörtlich erhalten |
Fehlercodes, die du in error.code sehen kannst
Dies sind vom Gateway ausgegebene Codes für Fehler, die in
OrcaRouter (nicht im Upstream) entstehen:
error.code | HTTP | Bedeutung |
|---|---|---|
insufficient_user_quota | 403 | Kontokredit erschöpft. Aufladen. |
model_not_found | 503 | Dieses Modell ist für dein Konto nicht verfügbar. |
model_price_error | 400 | Die Preisgestaltung für dieses Modell ist nicht eingerichtet. Support kontaktieren. |
api_not_implemented | 400 | Endpunkt oder Operation nicht unterstützt für das gewählte Modell. |
bad_request_body | 400 | Anfragekörper konnte nicht geparst werden. |
prompt_blocked | 400 | Sicherheitsrichtlinie des Anbieters hat den Prompt vor der Generierung blockiert. |
sensitive_words_detected | 400 | Filter für sensible Inhalte hat den Prompt abgelehnt. |
error.code (spezifisch) und falle zurück auf error.type (breite
Kategorie).
Streaming-Fehler
Fehler während einer gestreamten Antwort können keine HTTP-Statuscodes verwenden (der Status wurde beim Öffnen des Streams gesendet). Das Format hängt vom Endpunkt ab:/v1/chat/completions und /v1/responses (OpenAI-kompatibel)
Der Fehler kommt als In-Band-data: {...}-Chunk an:
data:-Chunk als JSON; wenn er ein error-Feld hat,
behandle den Stream als fehlgeschlagen.
/v1/messages (Anthropic-kompatibel)
Anthropic verwendet benannte SSE-Ereignisse. Ein Stream-Fehler kommt
an als:
event: message_stop (oder wird abgeschnitten)
nach dem Fehlerereignis.
Fallback-Fehler
Wennextra_body.models gesetzt ist und alle Modelle in der Kette
fehlschlagen, erhältst du ein 502 mit Details zum letzten
Upstream-Fehler. Die Antwort-Header X-Orca-Fallback-Level und
X-Orca-Fallback-Model zeigen an, welches Fallback versucht wurde,
als die Kette erschöpft war. Siehe
Antwort-Header.