Fel och gränser
MarkdownSvarkoder, deras betydelse och vad du ska göra. Alla fel är i JSON och innehåller Request ID.
Fullständig guide
Felformat
Felet returneras i formatet för det API du anropade: objektet error för OpenAI, {"type": "error", "error": {...}} för Anthropic och error med fälten status och details för Gemini. SDK:erna känner därför igen dem som vanliga API-fel.
error.codeocherror.reason— felklassen i tabellen nedan; värdena är desamma.error.type— formatets standardvärde (till exempelinvalid_request_errorellerserver_error).error.request_id(i Anthropic —request_idpå toppnivå), headernX-Request-IDoch slutet av felmeddelandet anger anropets identifierare.- I Gemini finns klassen i
error.details:ErrorInfo.reason— samma kod med versaler (till exempelMODEL_OVERLOADED),domain—ailoot.ai; anropets identifierare finns iRequestInfo.requestId. - I Gemini-format returneras ett 5xx-fel som inte får upprepas automatiskt, och
result_pending_checkmed status 409 ochstatusABORTED: på så sätt upprepar Gemini SDK och CLI dem inte automatiskt. Felklassen finns iErrorInfo.reason(till exempelMODEL_TIMEOUTellerRESULT_PENDING_CHECK). - Svaret i OpenAI-format innehåller även toppnivåfälten
codeochmessage— för ä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"
}
]
}
}Felkoder
| HTTP | Klass (reason) | Vad som hände | Vad du ska göra |
|---|---|---|---|
| 400 | invalid_request | Ogiltigt anrop: felaktig anropskropp eller parameter; modellen stöder inte ett fält, en bilaga eller ett verktyg i anropet; nyckeln har skickats i adressen | Rätta anropet enligt felmeddelandet: ta bort fältet, bilagan eller verktyget som inte stöds; skicka nyckeln i en header. Avvisning på grund av ett fält, en bilaga eller ett verktyg som inte stöds sker före reserveringen — ingenting har debiterats |
| 400 | context_length_exceeded | Anropet överskrider modellens kontextfönster | Korta historiken eller använd en modell med större kontext |
| 400 | content_policy_violation | Anropet avvisades av modellens regler | Formulera om anropet |
| 401 | invalid_api_key | Nyckeln saknas eller är ogiltig | Kontrollera att hela nyckeln har skickats |
| 401 | api_key_disabled | Nyckeln är avaktiverad | Aktivera nyckeln eller skapa en ny |
| 402 | insufficient_balance, insufficient_quota | Tillgängligt saldo räcker inte ens till minsta reservering (insufficient_quota — samma fall i ett format som OpenAI SDK känner igen) | Fyll på saldot eller minska max_tokens |
| 402 | api_key_quota_exhausted | Nyckelns totala utgiftsgräns är förbrukad | Höj nyckelns gräns i kontrollpanelen |
| 402 | payment_disputed | Kontot har en skuld på grund av en bestridd betalning | Nya anrop pausas tills skulden är betald — kontakta supporten |
| 403 | api_key_expired | Nyckelns giltighetstid har gått ut | Skapa en ny nyckel |
| 403 | account_inactive | Ditt konto är avaktiverat | Kontakta supporten |
| 403 | permission_denied | Nyckeln får inte göra detta anrop (till exempel på grund av IP) | Kontrollera nyckelns begränsningar |
| 404 | model_not_found | Modellen finns inte | Kontrollera ID mot /v1/models |
| 404 | unsupported_endpoint | Modellen fungerar inte i detta format | Välj ett annat format eller en annan modell |
| 404 | not_found | Sökvägen eller objektet finns inte (till exempel en uppgift) | Kontrollera adress och identifierare |
| 409 | duplicate_request | En operation med samma idempotensnyckel har redan accepterats och kan vara slutförd | Kontrollera resultatet av den första operationen; skicka ingen ny |
| 409 | not_ready, video_not_ready | Videon eller en annan uppgift är inte klar än | Hämta status senare |
| 409, 503 | result_pending_check | Vi klarlägger anropets resultat. För en videouppgift är detta flaggan result_pending_check: true i statussvaret, medan uppgiften fortfarande har status in_progress | Skicka inte anropet igen — statusen visas i historiken (GET https://ailoot.ai/api/v1/usage). Skapa inte videouppgiften på nytt: kontrollera den senare via GET /v1/videos/{id} |
| 410 | model_retired | Modellen har tagits ur drift | Välj en ny version i GET /v1/models |
| 413 | request_too_large | Anropskroppen är för stor | Minska filerna eller historiken |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | För många anrop eller samtidiga anrop från ditt konto | Vänta (headern Retry-After, vanligen 10 s) och försök igen |
| 429 | usage_limit_reached | Nyckelns förbrukningsfönster är förbrukat (5 timmar, 1 dag eller 7 dagar) | Vänta tills fönstret förnyas eller höj nyckelns gräns |
| 500 | internal_error | Ailoot-fel | Kontakta supporten med Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | Modellen returnerade ett ogiltigt, tomt eller ofullständigt svar | Hitta Request ID i kontrollpanelens historik. Om det finns ett resultat eller en debitering där skapar en upprepning ett andra betalt anrop. Att en post saknas bevisar inte att anropet inte har skickats eller utförts: upprepa inte ett anrop vars sändningsstatus är okänd; kontakta supporten och ange Request ID. |
| 502 | result_not_delivered | Resultatet levererades inte på grund av Ailoot; reserveringen eller debiteringen har återförts | Anropet kan skickas på nytt |
| 503 | model_overloaded | Modellen är tillfälligt överbelastad | Om X-Should-Retry: true — försök igen efter Retry-After sekunder; om false — kontrollera först Request ID i historiken |
| 503 | model_unavailable | Modellen är tillfälligt otillgänglig | Välj en annan modell. Om X-Should-Retry: true — försök igen efter Retry-After sekunder; om false — kontrollera först Request ID i historiken |
| 503 | service_unavailable | Tillfälligt fel hos Ailoot | Om X-Should-Retry: true — försök igen efter Retry-After sekunder; om false — kontrollera först Request ID i historiken |
| 503 | charge_not_confirmed | Svaret levererades inte: debiteringen kunde inte bekräftas; reserveringen har återförts och ingenting har debiterats | Om X-Should-Retry: true — försök igen efter Retry-After sekunder; om false — kontrollera först Request ID i historiken |
| 504 | model_timeout | Modellen svarade inte inom tidsgränsen; resultatet kan fortfarande komma | Skicka inte anropet på nytt förrän du har kontrollerat Request ID i historiken |
Koderna för modellsvar och resultatkontroll (502, 503 och 504) anger nu modellen eller anropet: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed och result_pending_check. Om din kod jämför error.code med tidigare värden ersätter du dem med koderna i tabellen; kopplingen mellan gamla och nya koder får du av supporten.
När ett anrop ska upprepas
- Kontrollera först X-Should-Retry: vid
false,result_pending_checkellermodel_timeoutska du inte upprepa automatiskt. Hitta Request ID i kontrollpanelens historik: där visas resultat och debitering. - Upprepning är säker när X-Should-Retry: true har returnerats: vänta
Retry-Aftersekunder. För 5xx räcker inte enbart koden: resultatet kan redan finnas. Kontrollera först historiken i kontrollpanelen eller kontakta supporten med Request ID. Detta är särskilt viktigt för bilder, video, musik och långa agentsteg. - Upprepning hjälper inte: 400, 401, 402, 403, 404 — rätta först anropet, nyckeln eller saldot.
Gränser
Frekvens och antal samtidiga anrop begränsas för hela kontot, inte per nyckel. Vid överskridande returneras 429 rate_limit_exceeded med headern Retry-After: 10. Om själva modellen är överbelastad returneras 503 model_overloaded med Retry-After: 30. Behöver du högre kapacitet, kontakta supporten.
Utgiftsgränser anges för nyckeln: den totala gränsen ger 402 api_key_quota_exhausted, fönster på 5 timmar, 1 dag och 7 dagar ger 429 usage_limit_reached. Läs mer — Nycklar och API-adress.
NVIDIA-modeller: kö
Modellistan kan hämtas även vid nollsaldo; generering kräver saldo till reserveringen. NVIDIA-modeller (Nemotron och andra) använder en gemensam kö: vid hög belastning kan svaret komma senare eller felet ”modellen är tillfälligt överbelastad” returneras med Retry-After-headern — försök igen efter angiven tid. Priserna finns i katalogen, och debiteringen fungerar som för övriga modeller.
Modellen bestämmer storleksgränserna: kontext (hur många token som kan skickas) och maximal svarslängd. De anges i katalogen.
Historik och förbrukning
Historik och förbrukning · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Inloggning och sessioner