Fehlerbehebung
Die Form des Fehlers entspricht dem Protokoll, das Sie aufgerufen haben. /v1/chat/completions und /v1/responses geben Fehler im OpenAI-Stil zurück; /v1/messages gibt Fehler im Anthropic-Stil zurück. Die HTTP-Statuscodes sind bei allen drei Protokollen identisch.
Format der Fehlerantwort
OpenAI-Format (/v1/chat/completions, /v1/responses)
{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"code": "invalid_api_key"
}
} Anthropic-Format (/v1/messages)
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} 401 · Authentifizierung fehlgeschlagen authentication_error
{"error":{"message":"missing API key in Authorization header or X-API-Key","type":"authentication_error"}} Ursachen
- Kein
Authorization: Bearer-Header (oderX-API-Key) — Meldung:missing API key in Authorization header or X-API-Key. - Der Schlüssel entspricht keinem aktiven Schlüssel — Meldung:
invalid API key. - Der Schlüssel ist abgelaufen — Meldung:
API key expired.
Lösung
- Senden Sie
Authorization: Bearer sk-syn-…(oderX-API-Key: sk-syn-…). - Prüfen Sie, dass der Schlüssel in der Konsole aktiv ist und vollständig kopiert wurde.
Nicht wiederholbar — korrigieren Sie die Anmeldedaten.
400 · Ungültige Anfrage invalid_request
{"error":{"message":"model or models field is required","type":"invalid_request"}} Ursachen
- Das Feld
modelfehlt, oder der JSON-Body ist leer oder fehlerhaft.
Lösung
- Fügen Sie ein
modelund einen wohlgeformten JSON-Body hinzu. Siehe die Chat-Completions-Referenz.
Nicht wiederholbar — korrigieren Sie die Anfrage.
403 · Kontingent erschöpft quota_exhausted
{"error":{"message":"API key quota exhausted","type":"quota_exhausted"}} Ursachen
- Das Prepaid-Guthaben des Schlüssels oder Workspaces ist aufgebraucht.
Lösung
- Laden Sie das Workspace-Guthaben auf. Hinweis: Synthorai gibt bei aufgebrauchtem Guthaben
403 quota_exhaustedzurück, nicht429— exponentielles Backoff hilft daher nicht; nur ein Aufladen behebt es.
Nicht durch Backoff wiederholbar — aufladen.
403 · Compliance — keine Datenweitergabe compliance_blocked / compliance_no_data_share
{"error":{"type":"compliance_blocked","code":"compliance_no_data_share","message":"model 'MODEL' is unavailable: your workspace compliance setting disallows providers that retain/train on data"}} Ursachen
- In Ihrem Workspace ist
no_provider_data_shareaktiviert, und das angeforderte Modell wird nur von einem Anbieter bereitgestellt, der Datenspeicherung/-weitergabe verlangt (z. B. ein Bedrock- oder Vertex-Modell nur mit Datenweitergabe).
Lösung
- Leiten Sie die Anfrage an ein Modell ohne Datenspeicherung, oder deaktivieren Sie den Compliance-Schalter des Workspaces, wenn Datenweitergabe für diese Workload akzeptabel ist. Die Aufbewahrungsklasse ist ein Routing-Kriterium pro Modell — siehe die Aufschlüsselung der 30-Tage-Aufbewahrung.
Nicht wiederholbar — eine Richtlinienentscheidung, kein vorübergehender Fehler.
429 · Rate-Limit erreicht rate_limit_exceeded
{"error":{"message":"rate limit exceeded: max 60 requests per minute","type":"rate_limit_exceeded"}} Ursachen
- Sie haben die Obergrenze für Anfragen pro Minute (RPM) überschritten. Die Meldung nennt das genaue Limit.
Lösung
- Warten Sie und wiederholen Sie mit exponentiellem Backoff + Jitter (Snippet unten). Beantragen Sie ein höheres Limit, wenn Sie dauerhaften Durchsatz benötigen.
Wiederholbar — warten und erneut versuchen.
502 · Kein Kanal für das Modell upstream_error
{"error":{"message":"no channels available for model \"MODEL\" in group \"default\"","type":"upstream_error"}} Ursachen
- Die Modell-id entspricht keinem routbaren Kanal für Ihren Workspace — ein Tippfehler, ein entferntes Modell oder eines, das Ihr Tarif nicht erreichen kann.
Lösung
- Prüfen Sie die exakte id anhand der aktuellen Modellliste. Wenn ein Modell kürzlich eingestellt wurde, wählen Sie ein aktuelles.
Unverändert nicht wiederholbar — korrigieren Sie die Modell-id.
BYOK: Fehler des Upstream-Anbieters
Bei bring-your-own-key läuft die Anfrage auf Ihrem Anbieterkonto (AWS Bedrock, Google Vertex AI oder der Anthropic-API), daher gibt Synthorai den ursprünglichen Fehler des Anbieters unverändert weiter — Antworten enthalten usage.is_byok: true. Die Lösung liegt in der Konsole oder Konfiguration dieses Anbieters, nicht im Gateway. Am häufigsten sind Einstellungen auf Kontoebene für Modellzugriff und Datenweitergabe:
| Anbieterfehler / Konfiguration | Ursache | Lösung |
|---|---|---|
model "…" is currently unavailable | In Ihrem BYOK-Konto ist das Modell nicht aktiviert, wurde entfernt oder ist kapazitätsbeschränkt (z. B. Claude Fable 5, vorübergehend auf Bedrock entfernt). | Aktivieren Sie den Modellzugriff in der Anbieterkonsole (Bedrock → Model access; Vertex → Model Garden) oder leiten Sie an ein verfügbares Modell um. |
setPublisherModelConfig / dataSharingEnabledProvider: "anthropic" (Vertex AI) | Google Vertex AI stellt Anthropic-Partnermodelle hinter ein projektbezogenes Opt-in zur Datenweitergabe und die Zustimmung zu den Model-Garden-Bedingungen. | Rufen Sie setPublisherModelConfig mit dataSharingEnabledProvider: "anthropic" auf und akzeptieren Sie die Bedingungen. Siehe Googles Vertex-Partnermodell-Dokumentation. |
data_retention_mode: provider_data_share (AWS Bedrock) | Bedrock stellt bestimmte Claude-Modelle hinter ein explizites Opt-in zur Datenspeicherung auf Kontoebene; ohne dieses wird das Modell als nicht verfügbar gelistet. | Setzen Sie data_retention_mode: provider_data_share im Konto (optional mit einer SCP auf bedrock:DataRetentionMode fixieren). |
Fehler des Upstream-Anbieters
Diese werden vom Modellanbieter mit dessen eigenem HTTP-Status und type durchgereicht. Nur 500 und 529 weisen auf die Anbieterseite hin; behandeln Sie sie (und 429) als vorübergehend und wiederholen Sie, während 4xx die Anfrage widerspiegeln. Vollständige Referenz: Anthropics Fehlerdokumentation.
| Status | Typ | Bedeutung |
|---|---|---|
413 | request_too_large | Der Anfrage-Body überschreitet die Größenbeschränkung — reduzieren Sie die Nutzlast. |
500 | api_error | Der Upstream-Anbieter hatte einen internen Fehler — vorübergehend; mit Backoff wiederholen. |
529 | overloaded_error | Der Upstream-Anbieter ist vorübergehend überlastet — vorübergehend; mit Backoff wiederholen. |
Rate-Limits
Rate-Limits werden pro API-Schlüssel durchgesetzt, um eine faire Nutzung für alle Benutzer zu gewährleisten.
Standardlimits
| Parameter | Typ | Beschreibung |
|---|---|---|
RPM | integer | Anfragen pro Minute. Standard: 60 RPM pro Schlüssel. |
TPM | integer | Token pro Minute. Standard: 100.000 TPM pro Schlüssel. |
Tageskontingent | integer | Gesamt-Token pro Tag. Pro Benutzer durch den Admin konfigurierbar. |
Wenn ein Rate-Limit erreicht wird, erhalten Sie eine 429 mit einem Retry-After Header, der die Wartezeit in Sekunden angibt.
Sie planen den Token-Durchsatz anhand realer Preise pro Token? Lassen Sie Ihre Workload durch den LLM-API-Kostenrechner laufen.
Umgang mit 429-Fehlern
import time
import openai
client = openai.OpenAI(base_url="https://synthorai.io/v1", api_key="YOUR_API_KEY")
for attempt in range(5):
try:
response = client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "Hello"}]
)
break
except openai.RateLimitError as e:
wait = 2 ** attempt # exponential backoff
print(f"Rate limited. Retrying in {wait}s...")
time.sleep(wait)async function withRetry(fn, maxAttempts = 5) {
for (let attempt = 0; attempt < maxAttempts; attempt++) {
try {
return await fn();
} catch (err) {
if (err.status === 429 && attempt < maxAttempts - 1) {
const wait = Math.pow(2, attempt) * 1000;
await new Promise(r => setTimeout(r, wait));
} else throw err;
}
}
}Ein 502 oder Überlastung bei einem Modell? Wählen Sie ein Ausweichmodell aus dem Modellpreisvergleich — jedes routbare Modell und sein Preis pro Token in einer Tabelle.