Source: https://ailoot.ai/docs/fi/errors/
Canonical: https://ailoot.ai/docs/fi/errors/
Language: fi

[Ohjeet](https://ailoot.ai/docs/fi/) 

# Virheet ja rajoitukset

[Markdown](https://ailoot.ai/docs/fi/errors/index.md)

Vastauskoodit, niiden merkitys ja toimenpiteet. Kaikki virheet ovat JSON-muodossa ja sisältävät Request ID:n.

## [](https://ailoot.ai/docs/fi/errors/#format)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.code` ja `error.reason` — alla olevan taulukon virheluokka; arvot ovat samat. `error.type` — muodon vakioarvo (esimerkiksi `invalid_request_error` tai `server_error`).
- `error.request_id` (Anthropicissa — `request_id` ylimmällä tasolla), otsake `X-Request-ID` ja viestitekstin loppu — pyynnön tunniste.
- Geminissä luokka on kentässä `error.details`: `ErrorInfo.reason` — sama koodi isoilla kirjaimilla (esimerkiksi `MODEL_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_check` saapuvat tilakoodilla 409 ja `status` `ABORTED`: näin Gemini SDK ja CLI eivät toista niitä automaattisesti. Virheluokka on kentässä `ErrorInfo.reason` (esimerkiksi `MODEL_TIMEOUT` tai `RESULT_PENDING_CHECK`).
- OpenAI-muotoisessa vastauksessa on lisäksi ylimmän tason kentät `code` ja `message` — vanhoja asiakkaita varten.

```json
{
  "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. …"
}
```

```json
{
  "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"
}
```

```json
{
  "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"
      }
    ]
  }
}
```

“Nothing was charged” tarkoittaa, ettei rahaa ole veloitettu. Jos saat X-Should-Retry: false -otsakkeen, älä yritä automaattisesti uudelleen; tarkista ensin Request ID historiasta.

## [](https://ailoot.ai/docs/fi/errors/#codes)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](https://ailoot.ai/docs/fi/support/).

## [](https://ailoot.ai/docs/fi/errors/#retry)Milloin pyyntöä kannattaa yrittää uudelleen

- **Tarkista ensin X-Should-Retry**: arvolla `false`, `result_pending_check` tai `model_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-After` sekuntia. 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.

OpenAIn ja Anthropicin SDK:t yrittävät yleensä automaattisesti uudelleen pyyntöjä, joissa ilmenee verkkovirhe tai 5xx-virhe. Poista tämä käytöstä generoinneissa (`max_retries=0`) ja tarkista `X-Should-Retry` ennen uutta yritystä. Kadonnut vastaus ei tarkoita, ettei pyyntöä ole suoritettu.

## [](https://ailoot.ai/docs/fi/errors/#limits)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](https://ailoot.ai/docs/fi/support/).

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](https://ailoot.ai/docs/fi/keys/#key).

## [](https://ailoot.ai/docs/fi/errors/#nvidia)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](https://ailoot.ai/models/fi/).

## Historia ja kulutus

[Historia ja kulutus](https://ailoot.ai/usage) · [GET https://ailoot.ai/api/v1/usage](https://ailoot.ai/docs/fi/cabinet/usage/) · JWT · `Authorization: Bearer $TOKEN`

`JWT ≠ sk-…` · [Kirjautuminen ja istunnot](https://ailoot.ai/docs/fi/cabinet/auth/)

Onko vielä kysyttävää? Lähetä Request ID ja kuvaus — autamme selvittämään asian.[Ota yhteyttä tukeen](mailto:support@ailoot.ai)

## Ailoot · Yritys ja sen projektisalkku





Ailoot perustuu kertyneeseen toimintakokemukseen, laajaan asiakaskuntaan, vakaaseen palveluun ja jatkuvaan KPI-seurantaan.





Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.





Ailoot hyödyntää tätä toimintakokemusta tarjotessaan API-yhteyden tekoälytoimintoihin asiakkaiden tuotteissa, agenteissa, sovelluksissa ja automaatioissa.
