Fehler und Limits
MarkdownAntwortcodes, ihre Bedeutung und mögliche Massnahmen. Alle Fehler werden als JSON mit Request ID zurückgegeben.
Vollständiger Leitfaden
Fehlerformat
Der Fehler entspricht dem Format der aufgerufenen API: Objekt error bei OpenAI, {"type": "error", "error": {...}} bei Anthropic und error mit den Feldern status und details bei Gemini. Deshalb erkennen SDKs sie als normale API-Fehler.
error.codeunderror.reason— Fehlerklasse aus der Tabelle unten; beide stimmen überein.error.type— Standardwert des Formats (zum Beispielinvalid_request_erroroderserver_error).error.request_id(bei Anthropic auf oberster Ebene alsrequest_id), der HeaderX-Request-IDund das Ende des Nachrichtentexts enthalten die Anfrage-ID.- Bei Gemini steht die Klasse in
error.details:ErrorInfo.reason— derselbe Code in Grossbuchstaben (zum BeispielMODEL_OVERLOADED),domain—ailoot.ai; die Anfrage-ID steht inRequestInfo.requestId. - Im Gemini-Format werden nicht automatisch wiederholbare 5xx-Fehler und
result_pending_checkmit Status 409 undstatusABORTEDzurückgegeben: So wiederholen Gemini SDK und CLI sie nicht automatisch. Die Fehlerklasse steht inErrorInfo.reason(zum BeispielMODEL_TIMEOUToderRESULT_PENDING_CHECK). - Antworten im OpenAI-Format enthalten zusätzlich die Felder auf oberster Ebene
codeundmessage— für ältere Clients.
{
"code": "API_KEY_REQUIRED",
"error": {
"code": "invalid_api_key",
"message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
"param": null,
"reason": "invalid_api_key",
"request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
"type": "invalid_request_error"
},
"message": "No API key was sent with the request. Nothing was charged. …"
}{
"type": "error",
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"reason": "invalid_api_key",
"message": "… Nothing was charged. … Request ID: 94ed3e31-4373-41ce-bf8a-0d1ed3f7235e."
},
"request_id": "94ed3e31-4373-41ce-bf8a-0d1ed3f7235e"
}{
"error": {
"code": 401,
"status": "UNAUTHENTICATED",
"message": "The API key is not valid. Nothing was charged. … Request ID: e7aa743b-9d0d-4064-b206-2562609f545b.",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "INVALID_API_KEY",
"domain": "ailoot.ai",
"metadata": {
"code": "invalid_api_key",
"reason": "invalid_api_key",
"request_id": "e7aa743b-9d0d-4064-b206-2562609f545b"
}
},
{
"@type": "type.googleapis.com/google.rpc.RequestInfo",
"requestId": "e7aa743b-9d0d-4064-b206-2562609f545b"
}
]
}
}Fehlercodes
| HTTP | Klasse (reason) | Was ist passiert? | Massnahme |
|---|---|---|---|
| 400 | invalid_request | Ungültige Anfrage: fehlerhafter Körper oder Parameter; das Modell unterstützt ein angefragtes Feld, einen Anhang oder ein Werkzeug nicht; der Schlüssel wurde in der URL übergeben | Korrigieren Sie die Anfrage anhand des Fehlertexts: Entfernen Sie nicht unterstützte Felder, Anhänge oder Werkzeuge; übermitteln Sie den Schlüssel im Header. Ablehnungen wegen nicht unterstützter Felder, Anhänge oder Werkzeuge erfolgen vor der Reservierung — es wurde nichts abgebucht |
| 400 | context_length_exceeded | Die Anfrage überschreitet das Kontextfenster des Modells | Kürzen Sie den Verlauf oder wählen Sie ein Modell mit grösserem Kontextfenster |
| 400 | content_policy_violation | Die Anfrage wurde aufgrund der Modellrichtlinien abgelehnt | Formulieren Sie die Anfrage um |
| 401 | invalid_api_key | Schlüssel fehlt oder ist ungültig | Prüfen Sie, ob der Schlüssel vollständig übermittelt wurde |
| 401 | api_key_disabled | Der Schlüssel ist deaktiviert | Aktivieren Sie den Schlüssel oder erstellen Sie einen neuen |
| 402 | insufficient_balance, insufficient_quota | Das frei verfügbare Guthaben reicht nicht einmal für die Mindestreservierung (insufficient_quota — derselbe Fall im für OpenAI SDK üblichen Format) | Laden Sie Guthaben auf oder reduzieren Sie max_tokens |
| 402 | api_key_quota_exhausted | Das gesamte Ausgabenlimit des Schlüssels ist ausgeschöpft | Erhöhen Sie das Schlüssellimit im Kundenbereich |
| 402 | payment_disputed | Das Konto hat eine Schuld aus einer angefochtenen Zahlung | Neue Anfragen sind bis zur Begleichung ausgesetzt — kontaktieren Sie den Support |
| 403 | api_key_expired | Die Gültigkeit des Schlüssels ist abgelaufen | Erstellen Sie einen neuen Schlüssel |
| 403 | account_inactive | Ihr Konto ist deaktiviert | Kontaktieren Sie den Support |
| 403 | permission_denied | Diese Anfrage ist für den Schlüssel gesperrt (zum Beispiel aufgrund der IP-Adresse) | Prüfen Sie die Einschränkungen des Schlüssels |
| 404 | model_not_found | Dieses Modell existiert nicht | Vergleichen Sie die ID mit /v1/models |
| 404 | unsupported_endpoint | Das Modell funktioniert in diesem Format nicht | Wählen Sie ein anderes Format oder Modell |
| 404 | not_found | Dieser Pfad oder dieses Objekt (zum Beispiel ein Auftrag) existiert nicht | Prüfen Sie Adresse und ID |
| 409 | duplicate_request | Eine Operation mit demselben Idempotenzschlüssel wurde bereits angenommen und möglicherweise abgeschlossen | Prüfen Sie das Ergebnis der ersten Operation; senden Sie keine neue |
| 409 | not_ready, video_not_ready | Das Video oder ein anderer Auftrag ist noch nicht fertig | Fragen Sie den Status später erneut ab |
| 409, 503 | result_pending_check | Das Anfrageergebnis wird noch geprüft. Bei einem Videoauftrag ist dies das Flag result_pending_check: true in der Statusantwort; der Auftrag selbst bleibt in_progress | Senden Sie die Anfrage nicht erneut — der Status erscheint im Verlauf (GET https://ailoot.ai/api/v1/usage). Erstellen Sie den Videoauftrag nicht nochmals: Prüfen Sie ihn später über GET /v1/videos/{id} |
| 410 | model_retired | Das Modell wird nicht mehr angeboten | Wählen Sie eine neue Version in GET /v1/models |
| 413 | request_too_large | Der Anfragekörper ist zu gross | Verkleinern Sie die Dateien oder kürzen Sie den Verlauf |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Zu viele Anfragen oder gleichzeitige Anfragen Ihres Kontos | Warten Sie (Header Retry-After, normalerweise 10 s) und versuchen Sie es erneut |
| 429 | usage_limit_reached | Das Ausgabenfenster des Schlüssels ist ausgeschöpft (5 Stunden, 1 Tag oder 7 Tage) | Warten Sie, bis sich das Fenster erneuert, oder erhöhen Sie das Schlüssellimit |
| 500 | internal_error | Ailoot-Fehler | Kontaktieren Sie den Support mit der Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | Das Modell hat eine ungültige, leere oder unvollständige Antwort zurückgegeben | Suchen Sie die Request ID im Verlauf des Kundenbereichs. Wenn dort ein Ergebnis oder eine Abbuchung vorhanden ist, erzeugt eine Wiederholung eine zweite kostenpflichtige Anfrage. Ein fehlender Eintrag belegt weder, dass die Anfrage nicht gesendet wurde, noch, dass sie nicht ausgeführt wurde: Senden Sie sie bei unbekanntem Sendestatus nicht erneut; wenden Sie sich mit der Request ID an den Support. |
| 502 | result_not_delivered | Das Ergebnis wurde durch einen Fehler von Ailoot nicht zugestellt; Reservierung oder Abbuchung wurden zurückerstattet | Die Anfrage kann erneut gesendet werden |
| 503 | model_overloaded | Modell vorübergehend überlastet | Bei X-Should-Retry: true nach Retry-After Sekunden erneut versuchen; bei false zuerst die Request ID im Verlauf prüfen |
| 503 | model_unavailable | Modell vorübergehend nicht verfügbar | Wählen Sie ein anderes Modell. Bei X-Should-Retry: true nach Retry-After Sekunden erneut versuchen; bei false zuerst die Request ID im Verlauf prüfen |
| 503 | service_unavailable | Vorübergehende Störung bei Ailoot | Bei X-Should-Retry: true nach Retry-After Sekunden erneut versuchen; bei false zuerst die Request ID im Verlauf prüfen |
| 503 | charge_not_confirmed | Antwort nicht ausgegeben: Abbuchung konnte nicht bestätigt werden; Reservierung freigegeben, nichts abgebucht | Bei X-Should-Retry: true nach Retry-After Sekunden erneut versuchen; bei false zuerst die Request ID im Verlauf prüfen |
| 504 | model_timeout | Modell hat nicht rechtzeitig geantwortet; das Ergebnis kann noch eintreffen | Senden Sie die Anfrage erst erneut, nachdem Sie die Request ID im Verlauf geprüft haben |
Codes für Modellantworten und Ergebnisprüfungen (502, 503 und 504) benennen jetzt das Modell oder die Anfrage: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed und result_pending_check. Falls Ihr Code error.code mit früheren Werten vergleicht, ersetzen Sie diese durch die Codes aus der Tabelle; bei der Zuordnung alter zu neuer Codes hilft der Support.
Wann Sie eine Anfrage wiederholen können
- Prüfen Sie zuerst X-Should-Retry: Bei
false,result_pending_checkodermodel_timeoutnicht automatisch wiederholen. Suchen Sie die Request ID im Verlauf des Kundenbereichs: Dort sehen Sie Ergebnis und Abbuchung. - Eine Wiederholung ist sicher bei X-Should-Retry: true: Warten Sie
Retry-AfterSekunden. Bei 5xx reicht der Code allein nicht: Das Ergebnis könnte bereits vorliegen. Prüfen Sie zuerst den Verlauf im Kundenbereich oder kontaktieren Sie den Support mit der Request ID. Dies ist besonders wichtig bei Bildern, Videos, Musik und langen Agentenschritten. - Eine Wiederholung hilft nicht: 400, 401, 402, 403, 404 — korrigieren Sie zuerst Anfrage, Schlüssel oder Guthaben.
Limits
Anfragerate und Anzahl gleichzeitiger Anfragen sind für Ihr gesamtes Konto begrenzt, nicht für einzelne Schlüssel. Bei Überschreitung kommt 429 rate_limit_exceeded mit dem Header Retry-After: 10. Ist das Modell selbst überlastet, kommt 503 model_overloaded mit Retry-After: 30. Benötigen Sie mehr Kapazität, kontaktieren Sie den Support.
Ausgabenlimits werden pro Schlüssel festgelegt: Gesamtlimit — 402 api_key_quota_exhausted, Zeitfenster von 5 Stunden, 1 Tag und 7 Tagen — 429 usage_limit_reached. Mehr dazu unter Schlüssel und API-Adresse.
NVIDIA-Modelle: Warteschlange
Die Modellliste kann auch ohne Guthaben abgerufen werden; eine Generierung benötigt Guthaben für die Reservierung. NVIDIA-Modelle (Nemotron und weitere) verwenden eine gemeinsame Warteschlange: Bei hoher Last kann die Antwort später eintreffen oder der Fehler «Modell vorübergehend überlastet» mit dem Header Retry-After auftreten — versuchen Sie es nach der angegebenen Zeit erneut. Preise stehen im Katalog; die Abbuchung erfolgt wie bei den übrigen Modellen.
Grössenlimits legt das Modell fest: Kontextfenster (Anzahl möglicher Eingabetokens) und maximale Antwortlänge. Sie stehen im Katalog.
Verlauf und Kosten
Verlauf und Kosten · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Anmeldung und Sitzungen