Fejl og grænser
MarkdownSvarkoder, deres betydning og hvad du skal gøre. Alle fejl er i JSON og har Request ID.
Komplet guide
Fejlformat
Fejlen kommer i formatet for det API, du kaldte: objektet error for OpenAI, {"type": "error", "error": {...}} for Anthropic og error med felterne status og details for Gemini. Derfor genkender SDK'erne dem som almindelige API-fejl.
error.codeogerror.reason— fejlklassen fra tabellen nedenfor; værdierne er de samme.error.type— formatets standardværdi (for eksempelinvalid_request_errorellerserver_error).error.request_id(i Anthropic —request_idpå øverste niveau), headerenX-Request-IDog slutningen af beskedteksten — anmodningens identifikator.- I Gemini ligger klassen i
error.details:ErrorInfo.reason— samme kode med store bogstaver (for eksempelMODEL_OVERLOADED),domain—ailoot.ai; anmodningens identifikator ligger iRequestInfo.requestId. - I Gemini-format kommer en 5xx-fejl, som ikke må gentages automatisk, og
result_pending_checkmed status 409 ogstatusABORTED: så gentager Gemini SDK og CLI dem ikke automatisk. Fejlklassen findes iErrorInfo.reason(for eksempelMODEL_TIMEOUTellerRESULT_PENDING_CHECK). - Svar i OpenAI-format indeholder også felterne på øverste niveau
codeogmessage— til ældre klienter.
{
"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"
}
]
}
}Fejlkoder
| HTTP | Klasse (reason) | Hvad der skete | Hvad du skal gøre |
|---|---|---|---|
| 400 | invalid_request | Anmodningen er ugyldig: forkert indhold eller parameter; modellen understøtter ikke et felt, en vedhæftning eller et værktøj i anmodningen; nøglen er sendt i adressen | Ret anmodningen ud fra fejlteksten: fjern det ikke-understøttede felt, den vedhæftning eller det værktøj; send nøglen i en header. Afvisning på grund af et ikke-understøttet felt, en vedhæftning eller et værktøj sker før reservationen — der er ikke debiteret noget |
| 400 | context_length_exceeded | Anmodningen er længere end modellens kontekst | Forkort historikken, eller vælg en model med større kontekst |
| 400 | content_policy_violation | Anmodningen er afvist af modellens regler | Omformulér anmodningen |
| 401 | invalid_api_key | Nøglen mangler eller er ugyldig | Kontrollér, at hele nøglen er sendt |
| 401 | api_key_disabled | Nøglen er deaktiveret | Aktivér nøglen, eller opret en ny |
| 402 | insufficient_balance, insufficient_quota | Den ledige saldo rækker ikke engang til den mindste reservation (insufficient_quota — samme situation i en form, OpenAI SDK kender) | Fyld saldoen op, eller sænk max_tokens |
| 402 | api_key_quota_exhausted | Nøglens samlede forbrugsgrænse er nået | Hæv nøglens grænse i kontrolpanelet |
| 402 | payment_disputed | Kontoen har gæld fra en bestridt betaling | Nye anmodninger er sat på pause, indtil gælden er betalt — kontakt support |
| 403 | api_key_expired | Nøglen er udløbet | Opret en ny nøgle |
| 403 | account_inactive | Din konto er deaktiveret | Kontakt support |
| 403 | permission_denied | Denne anmodning er ikke tilladt for nøglen (for eksempel på grund af IP) | Kontrollér nøglens begrænsninger |
| 404 | model_not_found | Modellen findes ikke | Kontrollér ID mod /v1/models |
| 404 | unsupported_endpoint | Modellen virker ikke i dette format | Vælg et andet format eller en anden model |
| 404 | not_found | Stien eller objektet (for eksempel opgaven) findes ikke | Kontrollér adressen og identifikatoren |
| 409 | duplicate_request | Handlingen med samme idempotensnøgle er allerede accepteret og muligvis afsluttet | Kontrollér resultatet af den første handling; send ikke en ny |
| 409 | not_ready, video_not_ready | Videoen eller en anden opgave er endnu ikke færdig | Hent status senere |
| 409, 503 | result_pending_check | Vi afklarer anmodningens resultat. For en videoopgave er det flaget result_pending_check: true i statussvaret; selve opgaven forbliver in_progress | Send ikke anmodningen igen — status vises i historikken (GET https://ailoot.ai/api/v1/usage). Opret ikke videoopgaven igen: kontrollér den senere via GET /v1/videos/{id} |
| 410 | model_retired | Modellen er taget ud af drift | Vælg en ny version i GET /v1/models |
| 413 | request_too_large | Anmodningens indhold er for stort | Gør filerne eller historikken mindre |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | For mange anmodninger eller samtidige anmodninger fra din konto | Vent (headeren Retry-After, normalt 10 s), og prøv igen |
| 429 | usage_limit_reached | Nøglens forbrugsvindue er opbrugt (5 timer, 1 dag eller 7 dage) | Vent, indtil vinduet fornyes, eller hæv nøglens grænse |
| 500 | internal_error | Ailoot-fejl | Kontakt support med Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | Modellen returnerede et ugyldigt, tomt eller ufuldstændigt svar | Find Request ID i kontrolpanelets historik. Hvis der er et resultat eller en debitering, opretter en gentagelse en ny betalt anmodning. At der ikke er en registrering, bekræfter ikke, at anmodningen ikke er sendt eller udført: gentag ikke en afsendelse, der ikke er bekræftet; kontakt support med Request ID. |
| 502 | result_not_delivered | Resultatet blev ikke leveret på grund af Ailoot; det reserverede beløb er frigivet, eller debiteringen er refunderet | Anmodningen kan sendes igen |
| 503 | model_overloaded | Modellen er midlertidigt overbelastet | Hvis X-Should-Retry: true — prøv igen efter Retry-After sekunder; hvis false — kontrollér først Request ID i historikken |
| 503 | model_unavailable | Modellen er midlertidigt utilgængelig | Vælg en anden model. Hvis X-Should-Retry: true — prøv igen efter Retry-After sekunder; hvis false — kontrollér først Request ID i historikken |
| 503 | service_unavailable | Midlertidig fejl hos Ailoot | Hvis X-Should-Retry: true — prøv igen efter Retry-After sekunder; hvis false — kontrollér først Request ID i historikken |
| 503 | charge_not_confirmed | Svaret blev ikke leveret: debiteringen kunne ikke bekræftes; det reserverede beløb er frigivet, og pengene er ikke debiteret | Hvis X-Should-Retry: true — prøv igen efter Retry-After sekunder; hvis false — kontrollér først Request ID i historikken |
| 504 | model_timeout | Modellen svarede ikke i tide; resultatet kan stadig komme | Send ikke anmodningen igen, før du har kontrolleret Request ID i historikken |
Koder for modelsvar og kontrol af resultatet (502, 503 og 504) henviser nu til modellen eller anmodningen: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed og result_pending_check. Hvis din kode sammenligner error.code med de tidligere værdier, skal du erstatte dem med koderne fra tabellen; sammenhængen mellem gamle og nye koder kan oplyses af support.
Hvornår skal du gentage en anmodning?
- Se først på X-Should-Retry: ved
false,result_pending_checkellermodel_timeoutskal du ikke gentage automatisk. Find Request ID i kontrolpanelets historik: der vises resultat og debitering. - En gentagelse er sikker, når X-Should-Retry: true modtages: vent
Retry-Aftersekunder. Ved 5xx er koden alene ikke nok: resultatet kan allerede være kommet. Kontrollér først historikken i kontrolpanelet, eller kontakt support med Request ID. Det er særligt vigtigt for billeder, video, musik og lange agenttrin. - En gentagelse hjælper ikke: 400, 401, 402, 403, 404 — ret først anmodningen, nøglen eller saldoen.
Grænser
Frekvens og antal samtidige anmodninger begrænses for din konto samlet, ikke for den enkelte nøgle. Ved overskridelse får du 429 rate_limit_exceeded med headeren Retry-After: 10. Hvis selve modellen er overbelastet — 503 model_overloaded med Retry-After: 30. Hvis du har brug for højere belastning, skal du kontakte support.
Forbrugsgrænser sættes for nøglen: samlet grænse — 402 api_key_quota_exhausted, vinduer på 5 timer, 1 dag og 7 dage — 429 usage_limit_reached. Læs mere — Nøgler og API-adresse.
NVIDIA-modeller: kø
Modellisten kan også hentes med en saldo på nul; generering kræver saldo til reservationen. NVIDIA-modeller (Nemotron og andre) bruger en fælles kø: ved høj belastning kan svaret komme senere, eller du får fejlen »modellen er midlertidigt overbelastet« med Retry-After-headeren — prøv igen efter den angivne tid. Priserne findes i kataloget, og debiteringen sker som for de øvrige modeller.
Størrelsesgrænserne fastsættes af modellen: kontekst (hvor mange tokens du kan sende) og maksimal svarlængde. De er angivet i kataloget.
Historik og udgifter
Historik og udgifter · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Login og sessioner