Fehler und Limits
MarkdownAntwortcodes, ihre Bedeutung und das weitere Vorgehen. Alle Fehler sind JSON und enthalten eine Request ID.
Vollständiger Leitfaden
Fehlerformat
Der Fehler entspricht dem Format der aufgerufenen API: Objekt error für OpenAI, {"type": "error", "error": {...}} für Anthropic und error mit den Feldern status und details für Gemini. Daher erkennen die SDKs sie als gewöhnliche API-Fehler.
error.codeunderror.reason— die Fehlerklasse aus der folgenden Tabelle; beide Werte sind identisch.error.type— der Standardwert des Formats (zum Beispielinvalid_request_erroroderserver_error).error.request_id(bei Anthropicrequest_idauf oberster Ebene), der HeaderX-Request-IDund das Ende des Meldungstexts enthalten die Anfragekennung.- Bei Gemini steht die Klasse in
error.details:ErrorInfo.reason— derselbe Code in Großbuchstaben (zum BeispielMODEL_OVERLOADED),domain—ailoot.ai; die Anfragekennung steht inRequestInfo.requestId. - Im Gemini-Format werden ein nicht automatisch wiederholbarer 5xx-Fehler und
result_pending_checkmit Status 409 undstatusABORTEDgeliefert, damit Gemini SDK und CLI sie nicht selbst wiederholen. Die Fehlerklasse steht inErrorInfo.reason(zum BeispielMODEL_TIMEOUToderRESULT_PENDING_CHECK). - Die Antwort im OpenAI-Format enthält außerdem die Felder auf oberster Ebene
codeundmessagefü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 zu tun ist |
|---|---|---|---|
| 400 | invalid_request | Die Anfrage ist ungültig: fehlerhafter Inhalt oder Parameter, ein vom Modell nicht unterstütztes Feld, ein Anhang oder Tool oder ein Schlüssel in der Adresse | Korrigieren Sie die Anfrage anhand des Fehlertexts: Entfernen Sie nicht unterstützte Felder, Anhänge oder Tools und übermitteln Sie den Schlüssel im Header. Die Ablehnung eines nicht unterstützten Felds, Anhangs oder Tools erfolgt vor der Reservierung; es wurde nichts abgebucht. |
| 400 | context_length_exceeded | Die Anfrage überschreitet den Modellkontext. | Kürzen Sie den Verlauf oder wählen Sie ein Modell mit größerem Kontext. |
| 400 | content_policy_violation | Die Anfrage wurde nach den Regeln des Modells abgelehnt. | Formulieren Sie die Anfrage um. |
| 401 | invalid_api_key | Der 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 freie Guthaben reicht nicht einmal für die minimale Reservierung (insufficient_quota — derselbe Fall im für OpenAI SDK üblichen Format). | Laden Sie Guthaben auf oder verringern 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 | Auf dem Konto besteht 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 | Der Schlüssel darf diese Anfrage nicht ausführen, beispielsweise wegen der IP-Adresse. | Prüfen Sie die Beschränkungen des Schlüssels. |
| 404 | model_not_found | Das Modell existiert nicht. | Gleichen Sie die ID mit /v1/models ab. |
| 404 | unsupported_endpoint | Das Modell unterstützt dieses Format nicht. | Wählen Sie ein anderes Format oder Modell. |
| 404 | not_found | Der Pfad oder das Objekt, zum Beispiel ein Job, existiert nicht. | Prüfen Sie Adresse und Kennung. |
| 409 | duplicate_request | Eine Operation mit demselben Idempotenzschlüssel wurde bereits angenommen und ist 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 Job ist noch nicht fertig. | Fragen Sie den Status später ab. |
| 409, 503 | result_pending_check | Das Anfrageergebnis wird noch geprüft. Bei einem Videojob wird dies durch das Flag result_pending_check: true in der Statusantwort angezeigt; der Job 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 Videojob nicht erneut, sondern prüfen Sie ihn später über GET /v1/videos/{id}. |
| 410 | model_retired | Das Modell wurde außer Betrieb genommen. | Wählen Sie eine neue Version aus GET /v1/models. |
| 413 | request_too_large | Der Anfrageinhalt ist zu groß. | Verkleinern Sie die Dateien oder den Verlauf. |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Zu viele Anfragen oder gleichzeitige Anfragen von Ihrem Konto. | Warten Sie (Header Retry-After, normalerweise 10 Sekunden) und wiederholen Sie die Anfrage. |
| 429 | usage_limit_reached | Das Ausgabenfenster des Schlüssels ist ausgeschöpft (5 Stunden, 1 Tag oder 7 Tage). | Warten Sie, bis sich das Zeitfenster erneuert, oder erhöhen Sie das Schlüssellimit. |
| 500 | internal_error | Fehler bei Ailoot | Kontaktieren Sie den Support mit der Request ID. |
| 502 | invalid_model_response, empty_response, incomplete_response | Das Modell lieferte eine ungültige, leere oder unvollständige Antwort. | Suchen Sie die Request ID im Verlauf des Kundenbereichs. Ist dort bereits ein Ergebnis oder eine Abbuchung vorhanden, erzeugt eine Wiederholung eine zweite kostenpflichtige Anfrage. Ein fehlender Eintrag bestätigt weder, dass die Anfrage nicht gesendet wurde, noch, dass sie nicht ausgeführt wurde: Wiederholen Sie keinen Versand mit unbekanntem Ausgang; wenden Sie sich mit der Request ID an den Support. |
| 502 | result_not_delivered | Das Ergebnis wurde durch Verschulden von Ailoot nicht geliefert; die Reservierung wurde freigegeben oder die Abbuchung erstattet. | Die Anfrage kann erneut gesendet werden. |
| 503 | model_overloaded | Das Modell ist vorübergehend überlastet. | Bei X-Should-Retry: true wiederholen Sie die Anfrage nach den in Retry-After angegebenen 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 die Anfrage nach den in Retry-After angegebenen Sekunden; bei false prüfen Sie zuerst die Request ID im Verlauf. |
| 503 | service_unavailable | Vorübergehender Fehler bei Ailoot | Bei X-Should-Retry: true wiederholen Sie die Anfrage nach den in Retry-After angegebenen Sekunden; bei false prüfen Sie zuerst die Request ID im Verlauf. |
| 503 | charge_not_confirmed | Die Antwort wurde nicht ausgeliefert, weil die Abbuchung nicht bestätigt werden konnte. Die Reservierung wurde freigegeben; es wurde nichts abgebucht. | Bei X-Should-Retry: true wiederholen Sie die Anfrage nach den in Retry-After angegebenen 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 die Anfrage nicht erneut, bevor Sie die Request ID im Verlauf geprüft haben. |
Die 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. Wenn Ihr Code error.code mit früheren Werten vergleicht, ersetzen Sie diese durch die Codes aus der Tabelle. Die Zuordnung alter zu neuen Codes erläutert der Support.
Wann Anfragen wiederholt werden 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, wenn X-Should-Retry: true vorliegt: Warten Sie
Retry-AfterSekunden. Bei 5xx reicht der Code allein nicht aus; ein 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 für Bilder, Video, Musik und lange Agentenschritte. - 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 erhalten Sie 429 rate_limit_exceeded mit dem Header Retry-After: 10. Ist das Modell selbst überlastet, erhalten Sie 503 model_overloaded mit Retry-After: 30. Wenn Sie ein höheres Anfragevolumen benötigen, schreiben Sie an den Support.
Ausgabenlimits werden am Schlüssel festgelegt: gesamtes Limit mit 402 api_key_quota_exhausted, Zeitfenster von 5 Stunden, 1 Tag und 7 Tagen mit 429 usage_limit_reached. Mehr dazu unter API-Schlüssel und API-Adresse.
NVIDIA-Modelle: Warteschlange
Die Modellliste kann auch bei null Guthaben abgefragt werden; zur Generierung ist Guthaben für die Reservierung erforderlich. NVIDIA-Modelle wie Nemotron verwenden eine gemeinsame Warteschlange. Bei hoher Last kann die Antwort später eintreffen oder ein Fehler „Modell vorübergehend überlastet“ mit Retry-After auftreten. Wiederholen Sie nach der angegebenen Zeit. Preise stehen im Katalog; die Abbuchung erfolgt wie bei anderen Modellen.
Größenlimits legt das Modell fest: Kontext, also wie viele Tokens gesendet werden können, 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