Fehler und Limits
MarkdownAntwortcodes, ihre Bedeutung und das weitere Vorgehen. Alle Fehler sind JSON und enthalten eine Request ID.
Vollständiger Leitfaden
Fehlerformat
Ein Fehler folgt 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 nachfolgenden Tabelle; beide stimmen überein.error.type— Standardwert des Formats (zum Beispielinvalid_request_erroroderserver_error).error.request_id(bei Anthropic —request_idauf oberster Ebene), der HeaderX-Request-IDund das Ende des Meldungstexts enthalten die Request-ID.- Bei Gemini steht die Klasse in
error.details:ErrorInfo.reason— derselbe Code in Großbuchstaben (zum BeispielMODEL_OVERLOADED),domain—ailoot.ai; die Request-ID steht inRequestInfo.requestId. - Im Gemini-Format werden ein 5xx-Fehler, der nicht automatisch wiederholt werden darf, und
result_pending_checkmit Status 409 sowiestatusABORTEDzurückgegeben: So wiederholen Gemini SDK und CLI sie nicht selbstständig. Die Fehlerklasse steht inErrorInfo.reason(zum BeispielMODEL_TIMEOUToderRESULT_PENDING_CHECK). - Eine Antwort im OpenAI-Format enthält außerdem 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 passiert ist | Was tun |
|---|---|---|---|
| 400 | invalid_request | Ungültiger Request: falscher Body oder Parameter; das Modell unterstützt ein Feld, einen Anhang oder ein Werkzeug des Requests nicht; der Schlüssel wurde in der Adresse übermittelt | Korrigieren Sie den Request anhand des Fehlertexts: Entfernen Sie nicht unterstützte Felder, Anhänge oder Werkzeuge; übermitteln Sie den Schlüssel im Header. Eine Ablehnung wegen eines nicht unterstützten Felds, Anhangs oder Werkzeugs erfolgt vor der Reservierung — es wurde nichts abgebucht |
| 400 | context_length_exceeded | Der Request überschreitet das Kontextfenster des Modells | Kürzen Sie den Verlauf oder wählen Sie ein Modell mit größerem Kontextfenster |
| 400 | content_policy_violation | Der Request wurde aufgrund der Modellrichtlinien abgelehnt | Formulieren Sie den Request um |
| 401 | invalid_api_key | Der Schlüssel fehlt oder ist ungültig | Prüfen Sie, ob der vollständige Schlüssel ü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 in der für das OpenAI SDK üblichen Form) | Laden Sie Guthaben auf oder reduzieren Sie max_tokens |
| 402 | api_key_quota_exhausted | Das gesamte Ausgabenlimit des Schlüssels ist aufgebraucht | Erhöhen Sie das Schlüssellimit im Kundenbereich |
| 402 | payment_disputed | Auf dem Konto besteht eine Schuld aus einer angefochtenen Zahlung | Neue Requests bleiben bis zur Begleichung ausgesetzt — kontaktieren Sie den Support |
| 403 | api_key_expired | Der Schlüssel ist abgelaufen | Erstellen Sie einen neuen Schlüssel |
| 403 | account_inactive | Ihr Konto ist deaktiviert | Kontaktieren Sie den Support |
| 403 | permission_denied | Der Schlüssel darf diesen Request nicht ausführen (zum Beispiel aufgrund der IP-Adresse) | Prüfen Sie die Einschränkungen des Schlüssels |
| 404 | model_not_found | Dieses Modell existiert nicht | Gleichen Sie die ID mit /v1/models ab |
| 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 existiert nicht (zum Beispiel ein Auftrag) | Prüfen Sie Adresse und ID |
| 409 | duplicate_request | Der Vorgang mit demselben Idempotenzschlüssel wurde bereits angenommen und möglicherweise abgeschlossen | Prüfen Sie das Ergebnis des ersten Vorgangs; senden Sie keinen neuen |
| 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 Ergebnis des Requests wird noch geprüft. Bei einem Videoauftrag zeigt dies das Flag result_pending_check: true in der Statusantwort an; der Auftrag selbst bleibt in_progress | Senden Sie den Request nicht erneut — der Status erscheint im Verlauf (GET https://ailoot.ai/api/v1/usage). Erstellen Sie einen Videoauftrag nicht erneut: 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 Request-Body ist zu groß | Verkleinern Sie die Dateien oder kürzen Sie den Verlauf |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Zu viele Requests oder gleichzeitige Requests Ihres Kontos | Warten Sie (Header Retry-After, üblicherweise 10 s) und versuchen Sie es erneut |
| 429 | usage_limit_reached | Das Ausgabenlimit des Schlüssels für ein Zeitfenster ist aufgebraucht (5 Stunden, 1 Tag oder 7 Tage) | Warten Sie auf ein neues Zeitfenster 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 geliefert | Suchen Sie die Request ID im Verlauf des Kundenbereichs. Ist dort ein Ergebnis oder eine Abbuchung vorhanden, erzeugt eine Wiederholung einen zweiten kostenpflichtigen Request. Ein fehlender Eintrag belegt weder, dass der Request nicht gesendet wurde, noch, dass er nicht ausgeführt wurde: Senden Sie ihn bei unbekanntem Sendestatus nicht erneut; wenden Sie sich mit der Request ID an den Support. |
| 502 | result_not_delivered | Das Ergebnis wurde aufgrund eines Fehlers von Ailoot nicht ausgeliefert; die Reservierung wurde freigegeben bzw. die Abbuchung erstattet | Sie können den Request erneut senden |
| 503 | model_overloaded | Das Modell ist vorübergehend überlastet | Bei X-Should-Retry: true wiederholen Sie den Request nach Retry-After Sekunden; bei false prüfen Sie zuerst die Request ID im Verlauf |
| 503 | model_unavailable | Das Modell ist vorübergehend nicht verfügbar | Wählen Sie ein anderes Modell. Bei X-Should-Retry: true wiederholen Sie den Request nach Retry-After Sekunden; bei false prüfen Sie zuerst die Request ID im Verlauf |
| 503 | service_unavailable | Vorübergehende Störung bei Ailoot | Bei X-Should-Retry: true wiederholen Sie den Request nach Retry-After Sekunden; bei false prüfen Sie zuerst die Request ID im Verlauf |
| 503 | charge_not_confirmed | Keine Antwort ausgeliefert: Die Abbuchung konnte nicht bestätigt werden; die Reservierung wurde freigegeben, es wurde nichts abgebucht | Bei X-Should-Retry: true wiederholen Sie den Request nach Retry-After Sekunden; bei false prüfen Sie zuerst die Request ID im Verlauf |
| 504 | model_timeout | Das Modell hat nicht rechtzeitig geantwortet; das Ergebnis kann noch erscheinen | Senden Sie den Request erst erneut, nachdem Sie die Request ID im Verlauf geprüft haben |
Die Codes für Modellantworten und Ergebnisprüfung (502, 503 und 504) beziehen sich nun auf das Modell oder den Request: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed und result_pending_check. Vergleicht Ihr Code error.code mit früheren Werten, ersetzen Sie diese durch die Codes der Tabelle; bei der Zuordnung alter zu neuen Codes hilft der Support.
Wann Sie einen Request wiederholen können
- Prüfen Sie zuerst X-Should-Retry: Bei
false,result_pending_checkodermodel_timeoutwiederholen Sie nicht automatisch. Suchen Sie die Request ID im Verlauf des Kundenbereichs: Dort sehen Sie Ergebnis und Abbuchung. - Eine Wiederholung ist bei X-Should-Retry: true sicher: Warten Sie
Retry-AfterSekunden. Bei 5xx reicht der Code allein nicht aus: Das Ergebnis könnte bereits vorliegen. Prüfen Sie zuerst den Verlauf im Kundenbereich oder kontaktieren Sie den Support mit der Request ID. Das ist besonders wichtig bei Bildern, Video, Musik und langen Agentenschritten. - Eine Wiederholung hilft nicht: 400, 401, 402, 403, 404 — korrigieren Sie zuerst Request, Schlüssel oder Guthaben.
Limits
Request-Häufigkeit und gleichzeitige Requests sind für Ihr gesamtes Konto begrenzt, nicht je Schlüssel. Bei Überschreitung erhalten Sie 429 rate_limit_exceeded mit dem Header Retry-After: 10. Ist das Modell selbst überlastet — 503 model_overloaded mit Retry-After: 30. Benötigen Sie eine höhere Last, kontaktieren Sie den Support.
Ausgabenlimits werden je Schlüssel festgelegt: gesamtes Limit — 402 api_key_quota_exhausted, Zeitfenster von 5 Stunden, 1 Tag und 7 Tagen — 429 usage_limit_reached. Mehr dazu — Schlüssel und API-Adresse.
NVIDIA-Modelle: Warteschlange
Die Modellliste lässt sich auch ohne Guthaben abrufen; für eine Generierung muss die Reservierung gedeckt sein. NVIDIA-Modelle (Nemotron und andere) verwenden eine gemeinsame Warteschlange: Bei hoher Last kann die Antwort später eintreffen oder ein Fehler „Modell vorübergehend überlastet“ mit dem Header Retry-After erscheinen — versuchen Sie es nach der angegebenen Zeit erneut. Die Preise stehen im Katalog; abgerechnet wird wie bei den übrigen Modellen.
Größenlimits legt das Modell fest: Kontextfenster (wie viele Tokens Sie senden können) und maximale Antwortlänge. Sie stehen im Katalog.
Verlauf und Ausgaben
Verlauf und Ausgaben · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Anmeldung und Sitzungen