Feil og grenser
MarkdownSvarkoder, hva de betyr, og hva du bør gjøre. Alle feil er i JSON og har Request ID.
Fullstendig guide
Feilformat
Feilen returneres i formatet til API-et du kalte: objektet error for OpenAI, {"type": "error", "error": {...}} for Anthropic og error med feltene status og details for Gemini. SDK-ene gjenkjenner dem derfor som vanlige API-feil.
error.codeogerror.reason— feilklassen fra tabellen nedenfor; verdiene er de samme.error.type— formatets standardverdi (for eksempelinvalid_request_errorellerserver_error).error.request_id(i Anthropic —request_idpå toppnivå), headerenX-Request-IDog slutten av feilmeldingen angir forespørselsidentifikatoren.- I Gemini ligger klassen i
error.details:ErrorInfo.reason— samme kode med store bokstaver (for eksempelMODEL_OVERLOADED),domain—ailoot.ai; forespørselsidentifikatoren finnes iRequestInfo.requestId. - I Gemini-format returneres en 5xx-feil som ikke skal gjentas automatisk, og
result_pending_checkmed status 409 ogstatusABORTED: slik unngår Gemini SDK og CLI å gjenta dem automatisk. Feilklassen finnes iErrorInfo.reason(for eksempelMODEL_TIMEOUTellerRESULT_PENDING_CHECK). - Svaret i OpenAI-format inneholder også toppnivåfeltene
codeogmessage— for eldre 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"
}
]
}
}Feilkoder
| HTTP | Klasse (reason) | Hva som skjedde | Hva du bør gjøre |
|---|---|---|---|
| 400 | invalid_request | Ugyldig forespørsel: feil forespørselskropp eller parameter; modellen støtter ikke et felt, vedlegg eller verktøy i forespørselen; nøkkelen er angitt i adressen | Rett forespørselen etter feilmeldingen: fjern feltet, vedlegget eller verktøyet som ikke støttes; send nøkkelen i en header. Avvisning på grunn av et felt, vedlegg eller verktøy som ikke støttes, skjer før reservasjonen — ingenting er belastet |
| 400 | context_length_exceeded | Forespørselen overskrider modellens kontekstvindu | Forkort historikken eller bruk en modell med større kontekst |
| 400 | content_policy_violation | Forespørselen er avvist av modellens regler | Omformuler forespørselen |
| 401 | invalid_api_key | Nøkkelen mangler eller er ugyldig | Kontroller at hele nøkkelen er sendt med |
| 401 | api_key_disabled | Nøkkelen er deaktivert | Aktiver nøkkelen eller opprett en ny |
| 402 | insufficient_balance, insufficient_quota | Tilgjengelig saldo dekker ikke engang minimumsreservasjonen (insufficient_quota — samme tilfelle i en form OpenAI SDK gjenkjenner) | Legg til midler eller reduser max_tokens |
| 402 | api_key_quota_exhausted | Nøkkelens samlede forbruksgrense er nådd | Øk nøkkelgrensen i kontrollpanelet |
| 402 | payment_disputed | Kontoen har gjeld fra en omtvistet betaling | Nye forespørsler er satt på pause til gjelden er betalt — kontakt brukerstøtte |
| 403 | api_key_expired | Nøkkelen har utløpt | Opprett en ny nøkkel |
| 403 | account_inactive | Kontoen din er deaktivert | Kontakt brukerstøtte |
| 403 | permission_denied | Nøkkelen har ikke tillatelse til denne forespørselen (for eksempel på grunn av IP) | Kontroller nøkkelens begrensninger |
| 404 | model_not_found | Modellen finnes ikke | Kontroller ID mot /v1/models |
| 404 | unsupported_endpoint | Modellen fungerer ikke i dette formatet | Velg et annet format eller en annen modell |
| 404 | not_found | Endepunktet eller objektet finnes ikke (for eksempel en oppgave) | Kontroller adresse og identifikator |
| 409 | duplicate_request | En operasjon med samme idempotensnøkkel er allerede godtatt og kan være fullført | Kontroller resultatet fra den første operasjonen; ikke send en ny |
| 409 | not_ready, video_not_ready | Videoen eller en annen oppgave er ikke ferdig | Hent status senere |
| 409, 503 | result_pending_check | Vi avklarer resultatet av forespørselen. For en videooppgave er dette flagget result_pending_check: true i statussvaret, mens selve oppgaven fortsatt har status in_progress | Ikke send forespørselen på nytt — statusen kommer i historikken (GET https://ailoot.ai/api/v1/usage). Ikke opprett videooppgaven på nytt: kontroller den senere via GET /v1/videos/{id} |
| 410 | model_retired | Modellen er tatt ut av drift | Velg en ny versjon i GET /v1/models |
| 413 | request_too_large | Forespørselskroppen er for stor | Reduser filene eller historikken |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | For mange forespørsler eller samtidige forespørsler fra kontoen din | Vent (headeren Retry-After, vanligvis 10 s), og prøv igjen |
| 429 | usage_limit_reached | Nøkkelens forbruksvindu er brukt opp (5 timer, 1 dag eller 7 dager) | Vent til vinduet fornyes, eller øk nøkkelgrensen |
| 500 | internal_error | Ailoot-feil | Kontakt brukerstøtte med Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | Modellen returnerte et ugyldig, tomt eller ufullstendig svar | Finn Request ID i kontrollpanelets historikk. Hvis det finnes et resultat eller en belastning der, oppretter en gjentakelse en ny betalt forespørsel. En manglende oppføring beviser ikke at forespørselen ikke ble sendt eller utført: ikke gjenta en forespørsel når sendestatusen er ukjent; kontakt brukerstøtte og oppgi Request ID. |
| 502 | result_not_delivered | Resultatet ble ikke levert på grunn av Ailoot; reservasjonen eller belastningen er tilbakeført | Forespørselen kan sendes på nytt |
| 503 | model_overloaded | Modellen er midlertidig overbelastet | Hvis X-Should-Retry: true — prøv igjen etter Retry-After sekunder; hvis false — kontroller først Request ID i historikken |
| 503 | model_unavailable | Modellen er midlertidig utilgjengelig | Velg en annen modell. Hvis X-Should-Retry: true — prøv igjen etter Retry-After sekunder; hvis false — kontroller først Request ID i historikken |
| 503 | service_unavailable | Midlertidig feil hos Ailoot | Hvis X-Should-Retry: true — prøv igjen etter Retry-After sekunder; hvis false — kontroller først Request ID i historikken |
| 503 | charge_not_confirmed | Svaret er ikke levert: belastningen kunne ikke bekreftes; reservasjonen er tilbakeført, og ingenting er belastet | Hvis X-Should-Retry: true — prøv igjen etter Retry-After sekunder; hvis false — kontroller først Request ID i historikken |
| 504 | model_timeout | Modellen svarte ikke innen tidsgrensen; resultatet kan fortsatt dukke opp | Ikke send forespørselen på nytt før du har kontrollert Request ID i historikken |
Kodene for modellsvar og resultatkontroll (502, 503 og 504) navngir nå modellen eller forespørselen: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed og result_pending_check. Hvis koden din sammenligner error.code med tidligere verdier, erstatter du dem med kodene i tabellen; du kan få koblingen mellom gamle og nye koder fra brukerstøtte.
Når du bør gjenta en forespørsel
- Se først på X-Should-Retry: ved
false,result_pending_checkellermodel_timeoutskal du ikke gjenta automatisk. Finn Request ID i kontrollpanelets historikk: der ser du resultat og belastning. - Det er trygt å gjenta når X-Should-Retry: true er returnert: vent
Retry-Aftersekunder. For 5xx er statuskoden alene ikke nok: resultatet kan allerede finnes. Kontroller først historikken i kontrollpanelet, eller kontakt brukerstøtte med Request ID. Dette er særlig viktig for bilder, video, musikk og lange agenttrinn. - Gjentakelse hjelper ikke: 400, 401, 402, 403, 404 — rett først forespørselen, nøkkelen eller saldoen.
Grenser
Frekvens og antall samtidige forespørsler begrenses for kontoen som helhet, ikke per nøkkel. Ved overskridelse får du 429 rate_limit_exceeded med headeren Retry-After: 10. Hvis selve modellen er overbelastet, får du 503 model_overloaded med Retry-After: 30. Hvis du trenger høyere kapasitet, skriver du til brukerstøtte.
Forbruksgrenser settes på nøkkelen: samlet grense gir 402 api_key_quota_exhausted, vinduer på 5 timer, 1 dag og 7 dager gir 429 usage_limit_reached. Les mer — Nøkler og API-adresse.
NVIDIA-modeller: kø
Modellisten kan hentes med null saldo; generering krever saldo til reservasjonen. NVIDIA-modeller (Nemotron og andre) bruker en felles kø: ved stor belastning kan svaret komme senere, eller du får feilen «modellen er midlertidig overbelastet» med Retry-After-headeren — prøv igjen etter angitt tid. Prisene finnes i katalogen, og belastningen fungerer som for andre modeller.
Modellen bestemmer størrelsesgrensene: kontekst (hvor mange tokener du kan sende) og maksimal svarlengde. De er angitt i katalogen.
Historikk og forbruk
Historikk og forbruk · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Innlogging og økter