Chyby a limity
MarkdownStavové kódy, jejich význam a další postup. Všechny chyby jsou ve formátu JSON a obsahují Request ID.
Úplný průvodce
Formát chyby
Chyba se vrací ve formátu API, které jste zavolali: objekt error pro OpenAI, {"type": "error", "error": {...}} pro Anthropic a error s poli status a details pro Gemini. SDK je proto rozpoznají jako běžné chyby API.
error.codeaerror.reason– třída chyby z níže uvedené tabulky; obě hodnoty se shodují.error.type– standardní hodnota daného formátu (napříkladinvalid_request_errorneboserver_error).error.request_id(v Anthropic –request_idna nejvyšší úrovni), hlavičkaX-Request-IDa konec textu zprávy – identifikátor požadavku.- V Gemini je třída v
error.details:ErrorInfo.reason– stejný kód velkými písmeny (napříkladMODEL_OVERLOADED),domain–ailoot.ai; identifikátor požadavku je vRequestInfo.requestId. - Ve formátu Gemini chyba 5xx, kterou nelze automaticky opakovat, a
result_pending_checkse vracejí se statusem 409 astatusABORTED: Gemini SDK a CLI je tak samy neopakují. Třída chyby je vErrorInfo.reason(napříkladMODEL_TIMEOUTneboRESULT_PENDING_CHECK). - Odpověď ve formátu OpenAI obsahuje také pole na nejvyšší úrovni
codeamessage– pro starší klienty.
{
"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"
}
]
}
}Chybové kódy
| HTTP | Třída (reason) | Co se stalo | Co dělat |
|---|---|---|---|
| 400 | invalid_request | Požadavek není správný: chybné tělo nebo parametr; model nepodporuje pole, přílohu nebo nástroj z požadavku; klíč byl předán v adrese | Opravte požadavek podle textu chyby: odeberte nepodporované pole, přílohu nebo nástroj; klíč předávejte v hlavičce. Odmítnutí kvůli nepodporovanému poli, příloze nebo nástroji nastává před rezervací – nic nebylo odečteno |
| 400 | context_length_exceeded | Požadavek překračuje kontext modelu | Zkraťte historii nebo použijte model s větším kontextem |
| 400 | content_policy_violation | Požadavek byl zamítnut pravidly modelu | Přeformulujte požadavek |
| 401 | invalid_api_key | Klíč chybí nebo je neplatný | Zkontrolujte, že jste předali celý klíč |
| 401 | api_key_disabled | Klíč je deaktivovaný | Aktivujte klíč nebo vytvořte nový |
| 402 | insufficient_balance, insufficient_quota | Volný zůstatek nestačí ani na minimální rezervu (insufficient_quota – stejný případ ve formě, kterou používá OpenAI SDK) | Doplňte zůstatek nebo snižte max_tokens |
| 402 | api_key_quota_exhausted | Celkový limit útraty klíče je vyčerpán | Zvyšte limit klíče v uživatelském panelu |
| 402 | payment_disputed | Na účtu je dluh ze sporné platby | Nové požadavky jsou pozastaveny do splacení – kontaktujte podporu |
| 403 | api_key_expired | Platnost klíče vypršela | Vytvořte nový klíč |
| 403 | account_inactive | Váš účet je deaktivovaný | Kontaktujte podporu |
| 403 | permission_denied | Tento požadavek není pro klíč povolen (například kvůli IP adrese) | Zkontrolujte omezení klíče |
| 404 | model_not_found | Takový model neexistuje | Porovnejte ID s /v1/models |
| 404 | unsupported_endpoint | Model v tomto formátu nefunguje | Vyberte jiný formát nebo model |
| 404 | not_found | Taková cesta nebo objekt neexistuje (například úloha) | Zkontrolujte adresu a identifikátor |
| 409 | duplicate_request | Operace se stejným klíčem idempotence již byla přijata a možná i dokončena | Zkontrolujte výsledek první operace, novou neodesílejte |
| 409 | not_ready, video_not_ready | Video nebo jiná úloha ještě nejsou hotové | Stav zjistěte později |
| 409, 503 | result_pending_check | Ověřujeme výsledek požadavku. U videoúlohy jde o příznak result_pending_check: true v odpovědi na dotaz na stav, samotná úloha zůstává in_progress | Požadavek znovu neodesílejte – stav se objeví v historii (GET https://ailoot.ai/api/v1/usage). Videoúlohu nevytvářejte znovu: zkontrolujte ji později přes GET /v1/videos/{id} |
| 410 | model_retired | Model byl vyřazen z provozu | Vyberte novou verzi v GET /v1/models |
| 413 | request_too_large | Tělo požadavku je příliš velké | Zmenšete soubory nebo zkraťte historii |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Příliš mnoho požadavků nebo souběžných požadavků z vašeho účtu | Počkejte (hlavička Retry-After, obvykle 10 s) a zkuste to znovu |
| 429 | usage_limit_reached | Limit útraty klíče za časové okno je vyčerpán (5 hodin, 1 den nebo 7 dní) | Počkejte, až se časové okno obnoví, nebo zvyšte limit klíče |
| 500 | internal_error | Chyba Ailoot | Kontaktujte podporu a uveďte Request ID |
| 502 | invalid_model_response, empty_response, incomplete_response | Model vrátil chybnou, prázdnou nebo neúplnou odpověď | Najděte Request ID v historii účtu. Pokud je tam výsledek nebo zaúčtovaná částka, opakování vytvoří druhý placený požadavek. Chybějící záznam nepotvrzuje, že požadavek nebyl odeslán nebo proveden: neopakujte odeslání s neznámým stavem; kontaktujte podporu a uveďte Request ID. |
| 502 | result_not_delivered | Výsledek nebyl doručen vinou Ailoot, rezervovaná nebo odečtená částka byla vrácena | Požadavek lze odeslat znovu |
| 503 | model_overloaded | Model je dočasně přetížený | Pokud X-Should-Retry: true – opakujte po počtu sekund uvedeném v Retry-After; pokud false – nejprve zkontrolujte Request ID v historii |
| 503 | model_unavailable | Model je dočasně nedostupný | Vyberte jiný model. Pokud X-Should-Retry: true, zopakujte požadavek po počtu sekund uvedeném v Retry-After; pokud false, nejprve zkontrolujte Request ID v historii |
| 503 | service_unavailable | Dočasná chyba na straně Ailoot | Pokud X-Should-Retry: true – opakujte po počtu sekund uvedeném v Retry-After; pokud false – nejprve zkontrolujte Request ID v historii |
| 503 | charge_not_confirmed | Odpověď nebyla vydána: nepodařilo se potvrdit odečtení částky; rezerva byla vrácena, peníze nebyly odečteny | Pokud X-Should-Retry: true – opakujte po počtu sekund uvedeném v Retry-After; pokud false – nejprve zkontrolujte Request ID v historii |
| 504 | model_timeout | Model neodpověděl včas, výsledek se ještě může objevit | Neposílejte požadavek znovu, dokud neověříte Request ID v historii |
Kódy pro odpovědi modelu a ověřování výsledku (502, 503 a 504) nyní označují model nebo požadavek: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed a result_pending_check. Pokud váš kód porovnává error.code s dřívějšími hodnotami, nahraďte je kódy z tabulky; mapování starých kódů na nové vám poskytne podpora.
Kdy požadavek zopakovat
- Nejprve zkontrolujte X-Should-Retry: při
false,result_pending_checknebomodel_timeoutpožadavek automaticky neopakujte. Najděte Request ID v historii uživatelského panelu: jsou tam vidět výsledek i odečtená částka. - Opakování je bezpečné, pokud přišlo X-Should-Retry: true: počkejte
Retry-Aftersekund. U 5xx samotný kód nestačí: výsledek se již mohl objevit. Nejprve zkontrolujte historii v uživatelském panelu nebo kontaktujte podporu s Request ID. To je obzvlášť důležité u obrázků, videa, hudby a dlouhých kroků agentů. - Opakování nepomůže: 400, 401, 402, 403, 404 – nejprve opravte požadavek, klíč nebo zůstatek.
Limity
Frekvence a počet souběžných požadavků jsou omezeny pro celý váš účet, nikoli pro jednotlivý klíč. Při překročení přijde 429 rate_limit_exceeded s hlavičkou Retry-After: 10. Pokud je přetížený samotný model – 503 model_overloaded s Retry-After: 30. Pokud potřebujete větší zátěž, kontaktujte podporu.
Limity útraty se nastavují u klíče: celkový limit – 402 api_key_quota_exhausted, časová okna 5 hodin, 1 den a 7 dní – 429 usage_limit_reached. Podrobnosti – Klíče a adresa API.
Modely NVIDIA: fronta
Seznam modelů lze získat i při nulovém zůstatku; pro generování je potřeba dostatek prostředků na rezervaci. Modely NVIDIA (Nemotron a další) používají společnou frontu: při vysoké zátěži může odpověď přijít později nebo se vrátí chyba „model je dočasně přetížený“ s hlavičkou Retry-After – zkuste to znovu po uvedené době. Ceny najdete v katalogu, částka se odečítá stejně jako u ostatních modelů.
Limity velikosti určuje model: kontext (kolik tokenů lze odeslat) a maximální délku odpovědi. Jsou uvedeny v katalogu.
Historie a náklady
Historie a náklady · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Přihlášení a relace