Fehler timeout: was tun, wenn claude-sonnet-5 fehlschlägt
Ein Timeout bedeutet, dass der Client aufgegeben hat, bevor die Antwort ankam. Streaming-Anfragen an LLMs trifft das am häufigsten, weil das Modell vor dem ersten Token nachdenkt und diese Denkphase keine Bytes liefert.
Ein Timeout ist kein HTTP-Statuscode, sondern eine clientseitige Wartegrenze. Die Anfrage erreichte meist das Gateway und wurde weitergeleitet, doch das Modell lieferte innerhalb der von Ihnen gesetzten Zeit kein Ergebnis. Langer Kontext, lange Ausgabe und nicht-streamende Aufrufe sind die drei häufigsten Auslöser.
claude-sonnet-5 wird von Anthropic bereitgestellt. Alles auf dieser Seite — Ursachen, Lösungen und gemessene Daten — basiert auf dem tatsächlichen Laufzeitverhalten dieses Modells auf der Gatewayschicht.
An diesem Gateway ist die häufigste Ursache: Das Client-Timeout ist zu niedrig gesetzt. Empfohlene erste Maßnahme: Erhöhen Sie das Client-Timeout auf 300 Sekunden oder mehr.
Häufige Ursachen
- Das Client-Timeout ist zu niedrig gesetzt
- Ein langer Prompt oder Kontext erhöht die Latenz des ersten Tokens
- Das Modell bearbeitet eine lange Reasoning-Aufgabe
- Netzwerkschwankungen
So beheben Sie es
- Erhöhen Sie das Client-Timeout auf 300 Sekunden oder mehr
- Aktivieren Sie Streaming, damit Sie nicht auf die ganze Antwort warten
- Kürzen Sie den Kontext oder nutzen Sie ein schnelleres Modell
- Senken Sie max_tokens
Wiederholung mit exponentiellem Backoff
Der folgende Code wiederholt den Aufruf, wenn claude-sonnet-5 timeout liefert: bis zu 5 Versuche, mit wachsender Wartezeit und zufälligem Jitter, damit parallele Anfragen nicht gleichzeitig wiederholen. Base-URL und API-Key werden aus Umgebungsvariablen gelesen — nicht hart codieren.
import os, time, random
import requests
BASE = os.getenv("OPENAI_BASE_URL") # e.g. https://<your-gateway>/v1
KEY = os.getenv("OPENAI_API_KEY")
MODEL = 'claude-sonnet-5'
def chat(messages, retries=5):
"""Retry with exponential backoff + jitter."""
for i in range(retries):
try:
r = requests.post(
BASE + "/chat/completions",
headers={"Authorization": "Bearer " + KEY},
json={"model": MODEL, "messages": messages, "stream": True},
timeout=60,
)
if r.status_code == 429 or r.status_code >= 500:
time.sleep(min(2 ** i + random.uniform(0, 1), 30))
continue
r.raise_for_status()
return r.json()
except requests.exceptions.Timeout:
time.sleep(min(2 ** i + random.uniform(0, 1), 30))
raise RuntimeError("gave up after " + str(retries) + " retries")
print(chat([{"role": "user", "content": "hello"}]))Wichtige Daten zu diesem Modell
| API-Endpunkt | https://api.airai.cc/v1 |
|---|---|
| OpenAI-kompatibel | OpenAI-compatible |
| Anbieter | Anthropic |
|---|---|
| Kontext | 1M |
| Funktionen | Reasoning, Tools, Files, Vision |
| API-Formate | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| Abrechnungsformel | p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 |
Häufige Fragen
Das offizielle SDK retryt bereits — brauche ich eigene Logik?
Business-Code muss meist nicht geändert werden, nur der Aufruftakt. Bei der Abrechnung p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 werden fehlgeschlagene Anfragen nicht angerechnet. Setzen Sie die Obergrenze auf 3–5 Versuche und ergänzen Sie Jitter. Wiederholbare Fehler mit exponentiellem Backoff, der Rest sofort als Fehler zurückgeben.
Wie sollte ich timeout in Produktion überwachen?
Tritt es nur in Produktion auf, ist es meist eine Umgebungsdifferenz, kein Modellfehler. Das Modell wird von Anthropic bereitgestellt, der Upstream-Status richtet sich nach den Ankündigungen des Anbieters. Protokollieren Sie bei jedem Fehler die Request-ID — sie hilft mehr als der Statuscode. Reproduzieren Sie es zuerst in der Testumgebung mit demselben Request-Body.
Reduziert der Wechsel auf Streaming timeout?
Die Request-Parameter müssen geändert werden; Retry allein hilft nicht. Das ist ein clientseitiges Konfigurationsproblem; serverseitig ändert sich nichts. Die Fähigkeits-Tags sind Reasoning, Tools, Files, Vision, daraus ergeben sich die Parameter-Obergrenzen. Das Kontextfenster 1M bestimmt die maximale Eingabe pro Anfrage, darüber wird direkt abgelehnt. Lassen Sie Parameterfehler sofort fehlschlagen, statt Retries zu verschwenden.
Muss ich den Tarif upgraden, um timeout bei claude-sonnet-5 zu beheben?
Es geht vor allem um das Kontingent, nicht um einen Defekt des Modells. Sowohl ein höheres Tariflimit als auch eine niedrigere Aufruffrequenz helfen. Der Eingabepreis liegt bei etwa $2.00 pro Million Tokens. Bei der Abrechnung p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 werden fehlgeschlagene Anfragen nicht angerechnet. Wenn Sie Kosten nach p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 schätzen, rechnen Sie das Retry-Budget mit ein.
Weitere Fehler bei diesem Modell
- claude-sonnet-5: Fehler 429 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 500 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 502 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 503 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 504 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 401 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 403 — Ursachen und Lösungen
- claude-sonnet-5: Fehler 400 — Ursachen und Lösungen
Andere Modelle mit demselben Fehler
- gpt-5
- claude-opus-5
- gemini-2.5-pro
- deepseek-v4-pro
- grok-4.3
- llama-3.3-70b-instruct
- qvq-max
- qwq-32b
- glm-5
- MiniMax-M3
- kimi-k3
- hy3
- doubao-seed-evolving
- mimo-v2.5
- gpt-4o
- claude-opus-4-6
Daten aktualisiert: 2026-10-10 18:30