Virheet ja rajoitukset
MarkdownVastauskoodit, niiden merkitys ja toimenpiteet. Kaikki virheet ovat JSON-muodossa ja sisältävät Request ID:n.
Koko opas
Virheen muoto
Virhe saapuu kutsumasi APIn muodossa: objekti error OpenAIssa, {"type": "error", "error": {...}} Anthropicissa ja error kentillä status ja details Geminissä. Siksi SDK:t tunnistavat ne tavallisiksi API-virheiksi.
error.codejaerror.reason— alla olevan taulukon virheluokka; arvot ovat samat.error.type— muodon vakioarvo (esimerkiksiinvalid_request_errortaiserver_error).error.request_id(Anthropicissa —request_idylimmällä tasolla), otsakeX-Request-IDja viestitekstin loppu — pyynnön tunniste.- Geminissä luokka on kentässä
error.details:ErrorInfo.reason— sama koodi isoilla kirjaimilla (esimerkiksiMODEL_OVERLOADED),domain—ailoot.ai; pyynnön tunniste on kentässäRequestInfo.requestId. - Gemini-muodossa 5xx-virhe, jota ei saa yrittää automaattisesti uudelleen, ja
result_pending_checksaapuvat tilakoodilla 409 jastatusABORTED: näin Gemini SDK ja CLI eivät toista niitä automaattisesti. Virheluokka on kentässäErrorInfo.reason(esimerkiksiMODEL_TIMEOUTtaiRESULT_PENDING_CHECK). - OpenAI-muotoisessa vastauksessa on lisäksi ylimmän tason kentät
codejamessage— vanhoja asiakkaita varten.
{
"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"
}
]
}
}Virhekoodit
| HTTP | Luokka (reason) | Mitä tapahtui | Toimenpide |
|---|---|---|---|
| 400 | invalid_request | Pyyntö on virheellinen: väärä runko tai parametri; malli ei tue pyynnön kenttää, liitettä tai työkalua; avain on lähetetty osoitteessa | Korjaa pyyntö virhetekstin perusteella: poista tukematon kenttä, liite tai työkalu; lähetä avain otsakkeessa. Tukemattoman kentän, liitteen tai työkalun aiheuttama hylkäys tapahtuu ennen varausta — mitään ei ole veloitettu |
| 400 | context_length_exceeded | Pyyntö ylittää mallin kontekstin | Lyhennä historiaa tai valitse malli, jossa on suurempi konteksti |
| 400 | content_policy_violation | Mallin säännöt hylkäsivät pyynnön | Muotoile pyyntö uudelleen |
| 401 | invalid_api_key | Avain puuttuu tai on virheellinen | Tarkista, että koko avain on lähetetty |
| 401 | api_key_disabled | Avain on poistettu käytöstä | Ota avain käyttöön tai luo uusi |
| 402 | insufficient_balance, insufficient_quota | Vapaa saldo ei riitä edes vähimmäisvaraukseen (insufficient_quota — sama tilanne OpenAI SDK:lle tutussa muodossa) | Lataa saldoa tai pienennä max_tokens-arvoa |
| 402 | api_key_quota_exhausted | Avaimen kokonaiskulutusraja on käytetty | Nosta avaimen rajaa hallintapaneelissa |
| 402 | payment_disputed | Tilillä on velkaa kiistetystä maksusta | Uudet pyynnöt on keskeytetty velan maksamiseen asti — ota yhteyttä tukeen |
| 403 | api_key_expired | Avain on vanhentunut | Luo uusi avain |
| 403 | account_inactive | Tilisi on poistettu käytöstä | Ota yhteyttä tukeen |
| 403 | permission_denied | Tämä pyyntö on estetty avaimelta (esimerkiksi IP:n vuoksi) | Tarkista avaimen rajoitukset |
| 404 | model_not_found | Mallia ei ole | Tarkista ID luettelosta /v1/models |
| 404 | unsupported_endpoint | Malli ei toimi tässä muodossa | Valitse toinen muoto tai malli |
| 404 | not_found | Polkua tai objektia (esimerkiksi tehtävää) ei ole | Tarkista osoite ja tunniste |
| 409 | duplicate_request | Toiminto samalla idempotenssiavaimella on jo hyväksytty ja mahdollisesti valmis | Tarkista ensimmäisen toiminnon tulos, älä lähetä uutta |
| 409 | not_ready, video_not_ready | Video tai muu tehtävä ei ole vielä valmis | Hae tila myöhemmin |
| 409, 503 | result_pending_check | Selvitämme pyynnön tulosta. Videotehtävässä tämä on tilalippu result_pending_check: true tilavastauksessa; itse tehtävän tilana pysyy in_progress | Älä lähetä pyyntöä uudelleen — tila ilmestyy historiaan (GET https://ailoot.ai/api/v1/usage). Älä luo videotehtävää uudelleen: tarkista se myöhemmin metodilla GET /v1/videos/{id} |
| 410 | model_retired | Malli on poistettu palvelusta | Valitse uusi versio metodista GET /v1/models |
| 413 | request_too_large | Pyynnön runko on liian suuri | Pienennä tiedostoja tai historiaa |
| 429 | rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full | Tililtäsi lähetetään liikaa pyyntöjä tai samanaikaisia pyyntöjä | Odota (otsake Retry-After, yleensä 10 s) ja yritä uudelleen |
| 429 | usage_limit_reached | Avaimen kulutusjakso on käytetty (5 tuntia, 1 päivä tai 7 päivää) | Odota jakson uusiutumista tai nosta avaimen rajaa |
| 500 | internal_error | Ailootin virhe | Ota yhteyttä tukeen Request ID:n kanssa |
| 502 | invalid_model_response, empty_response, incomplete_response | Malli palautti virheellisen, tyhjän tai puutteellisen vastauksen | Etsi Request ID hallintapaneelin historiasta. Jos siellä on tulos tai veloitus, pyynnön toistaminen luo toisen maksullisen pyynnön. Merkinnän puuttuminen ei vahvista, ettei pyyntöä ole lähetetty tai suoritettu: älä toista lähetystä, jonka toteutumisesta ei ole varmuutta; ota yhteyttä tukeen ja ilmoita Request ID. |
| 502 | result_not_delivered | Tulosta ei toimitettu Ailootin syystä, varaus tai veloitus on palautettu | Pyynnön voi lähettää uudelleen |
| 503 | model_overloaded | Malli on tilapäisesti ylikuormittunut | Jos X-Should-Retry: true — yritä uudelleen Retry-After-otsakkeessa ilmoitetun sekuntimäärän kuluttua; jos false — tarkista ensin Request ID historiasta |
| 503 | model_unavailable | Malli ei tällä hetkellä ole saatavilla | Valitse toinen malli. Jos X-Should-Retry: true — yritä uudelleen Retry-After-otsakkeessa ilmoitetun sekuntimäärän kuluttua; jos false — tarkista ensin Request ID historiasta |
| 503 | service_unavailable | Tilapäinen häiriö Ailootin puolella | Jos X-Should-Retry: true — yritä uudelleen Retry-After-otsakkeessa ilmoitetun sekuntimäärän kuluttua; jos false — tarkista ensin Request ID historiasta |
| 503 | charge_not_confirmed | Vastausta ei toimitettu: veloitusta ei voitu vahvistaa; varaus palautettiin eikä rahaa veloitettu | Jos X-Should-Retry: true — yritä uudelleen Retry-After-otsakkeessa ilmoitetun sekuntimäärän kuluttua; jos false — tarkista ensin Request ID historiasta |
| 504 | model_timeout | Malli ei vastannut ajoissa, tulos voi vielä ilmestyä | Älä lähetä pyyntöä uudelleen ennen kuin olet tarkistanut Request ID:n historiasta |
Mallivastausten ja tuloksen tarkistuksen koodit (502, 503 ja 504) nimeävät nyt mallin tai pyynnön: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed ja result_pending_check. Jos koodisi vertaa error.code aiempiin arvoihin, korvaa ne taulukon koodeilla; aiempien ja uusien koodien vastaavuuden kertoo tuki.
Milloin pyyntöä kannattaa yrittää uudelleen
- Tarkista ensin X-Should-Retry: arvolla
false,result_pending_checktaimodel_timeoutälä yritä automaattisesti uudelleen. Etsi Request ID hallintapaneelin historiasta: siellä näkyvät tulos ja veloitus. - Uudelleenyritys on turvallinen, kun saat X-Should-Retry: true -otsakkeen: odota
Retry-Aftersekuntia. 5xx-virheissä pelkkä koodi ei riitä: tulos on voinut jo saapua. Tarkista ensin historia hallintapaneelista tai ota yhteyttä tukeen Request ID:n kanssa. Tämä on erityisen tärkeää kuville, videoille, musiikille ja pitkille agenttiaskelille. - Uudelleenyritys ei auta: 400, 401, 402, 403, 404 — korjaa ensin pyyntö, avain tai saldo.
Rajoitukset
Pyyntötiheyttä ja samanaikaisten pyyntöjen määrää rajoitetaan koko tilille, ei yksittäiselle avaimelle. Ylityksestä saat 429 rate_limit_exceeded otsakkeella Retry-After: 10. Jos itse malli on ylikuormittunut — 503 model_overloaded kentällä Retry-After: 30. Jos tarvitset suurempaa kuormitusta, ota yhteyttä tukeen.
Kulutusrajat asetetaan avaimelle: kokonaisraja — 402 api_key_quota_exhausted, jaksot 5 tuntia, 1 päivä ja 7 päivää — 429 usage_limit_reached. Lisätietoja — Avaimet ja API-osoite.
NVIDIA-mallit: jono
Malliluettelon voi pyytää myös nollasaldolla; generointi vaatii saldoa varaukseen. NVIDIA-mallit (Nemotron ja muut) käyttävät yhteistä jonoa: suurella kuormituksella vastaus voi saapua myöhemmin tai palautuu virhe ”malli on tilapäisesti ylikuormittunut” Retry-After-otsakkeella — yritä uudelleen ilmoitetun ajan kuluttua. Hinnat ovat luettelossa, ja veloitus toimii kuten muillakin malleilla.
Malli määrittää kokorajat: kontekstin (lähetettävien tokenien määrä) ja vastauksen enimmäispituuden. Ne ilmoitetaan luettelossa.
Historia ja kulutus
Historia ja kulutus · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN
JWT ≠ sk-… · Kirjautuminen ja istunnot