Fehler
Alle Statuscodes, die das Gateway zurückgibt, ihre tatsächlichen Ursachen und die jeweilige Lösung.
Fehler geben JSON zurück, mit einem type und einem menschenlesbaren message. Die Statuscodes folgen den Konventionen von Anthropic und OpenAI.
{"type": "error", "error": {"type": "authentication_error", "message": "invalid api key"}}
Statuscodes
| Code | Bedeutung | Häufigste tatsächliche Ursache | Lösung |
|---|---|---|---|
400 | Ungültige Anfrage | Fehlendes max_tokens bei Messages oder ein fehlerhaftes messages Array | Prüfen Sie den Anfragekörper anhand von Messages |
401 | Nicht authentifiziert | Der Schlüssel wurde im falschen Header für das Format gesendet | x-api-key für Messages, Bearer für Chat Completions |
402 | Zahlung erforderlich | Guthaben aufgebraucht oder Tarif abgelaufen | Guthaben aufladen oder Tarif kaufen |
403 | Zugriff verweigert | Schlüssel widerrufen oder Modell für das Konto nicht freigeschaltet | Erstellen Sie einen neuen Schlüssel; prüfen Sie /v1/models |
404 | Nicht gefunden | Fehler in der Basis-URL — meist ein doppeltes oder fehlendes /v1 | Siehe Basis-URLs |
429 | Anfragelimit erreicht | Zu viele gleichzeitige Anfragen | Verlängern Sie die Wartezeit exponentiell; siehe Anfragelimits |
500 | Gateway-Fehler | Unerwarteter interner Fehler | Versuchen Sie es einmal erneut; falls der Fehler weiterhin auftritt, wenden Sie sich mit der Anfrage-ID an den Support |
529 | Vorgelagerter Dienst überlastet | Kapazitätsengpass beim Anbieter, nicht bei Ihrem Konto | Wiederholen Sie die Anfrage mit zunehmender Wartezeit — der Engpass löst sich meist innerhalb von Sekunden |
Fehlertypen
| Typ | Bedeutung |
|---|---|
invalid_request_error | Der Anfragekörper ist fehlerhaft oder ein Pflichtfeld fehlt |
authentication_error | Schlüssel fehlt, ist fehlerhaft oder wurde widerrufen |
permission_error | Der Schlüssel ist gültig, darf dieses Modell aber nicht verwenden |
not_found_error | Unbekannter Pfad oder unbekannte Modell-ID |
rate_limit_error | Gedrosselt |
api_error | Interner Fehler |
overloaded_error | Kapazität des vorgelagerten Dienstes erschöpft |
Anfragen richtig wiederholen
Wiederholungsversuch 429, 500, 502, 503 und 529. Wiederholen Sie niemals blind 400, 401, 402 oder 403 — dieselbe Anfrage schlägt auf die gleiche Weise fehl, und bei teilweise generierten Antworten zahlen Sie möglicherweise doppelt.
import time, httpx
def call(body, key, tries=4):
for i in range(tries):
r = httpx.post(class="s">"https://aiprimetech.io/v1/messages", json=body, timeout=120,
headers={class="s">"x-api-key": key,
class="s">"anthropic-version": class="s">"2023-06-01"})
if r.status_code in (429, 500, 502, 503, 529):
time.sleep(2 ** i) class=class="s">"c"># 1s, 2s, 4s, 8s
continue
r.raise_for_status()
return r.json()
raise RuntimeError(class="s">"upstream unavailable after retries")
Fügen Sie der Wartezeit im Produktionsbetrieb eine zufällige Variation hinzu. Synchronisierte Wiederholungsversuche vieler Worker machen aus einer kurzen Störung einen Anfragesturm auf denselben vorgelagerten Dienst.