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

[Bantuan](https://ailoot.ai/docs/id/) 

# Kesalahan dan batas

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

Kode respons, artinya, dan tindakan yang diperlukan. Semua kesalahan berformat JSON dan memuat Request ID.

## [](https://ailoot.ai/docs/id/errors/#format)Format kesalahan

Kesalahan dikembalikan dalam format API yang Anda panggil: objek `error` untuk OpenAI, `{"type": "error", "error": {...}}` untuk Anthropic, dan `error` dengan kolom `status` dan `details` untuk Gemini. Karena itu, SDK mengenalinya sebagai kesalahan API biasa.

- `error.code` dan `error.reason` — kelas kesalahan dari tabel di bawah; keduanya sama. `error.type` — nilai standar format (misalnya, `invalid_request_error` atau `server_error`).
- `error.request_id` (dalam Anthropic — `request_id` pada tingkat atas), header `X-Request-ID` dan bagian akhir pesan — ID permintaan.
- Dalam Gemini, kelas terdapat di `error.details`: `ErrorInfo.reason` — kode yang sama dengan huruf besar (misalnya, `MODEL_OVERLOADED`), `domain` — `ailoot.ai`; ID permintaan terdapat di `RequestInfo.requestId`.
- Dalam format Gemini, kesalahan 5xx yang tidak boleh diulang secara otomatis dan `result_pending_check` dikembalikan dengan status 409 dan `status` `ABORTED`: agar Gemini SDK dan CLI tidak mengulangnya secara otomatis. Kelas kesalahan terdapat di `ErrorInfo.reason` (misalnya, `MODEL_TIMEOUT` atau `RESULT_PENDING_CHECK`).
- Respons berformat OpenAI juga memuat kolom tingkat atas `code` dan `message` — untuk klien lama.

```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” berarti tidak ada dana yang didebit. Jika X-Should-Retry: false diterima, jangan ulangi secara otomatis; periksa dahulu Request ID dalam riwayat.

## [](https://ailoot.ai/docs/id/errors/#codes)Kode kesalahan

| HTTP | Kelas (reason) | Yang terjadi | Tindakan |
| --- | --- | --- | --- |
| 400 | `invalid_request` | Permintaan tidak valid: isi atau parameter salah; model tidak mendukung kolom, lampiran, atau alat dalam permintaan; kunci dikirim dalam alamat | Perbaiki permintaan sesuai pesan kesalahan: hapus kolom, lampiran, atau alat yang tidak didukung; kirim kunci melalui header. Penolakan karena kolom, lampiran, atau alat yang tidak didukung terjadi sebelum saldo ditahan — tidak ada pendebitan |
| 400 | `context_length_exceeded` | Permintaan melebihi konteks model | Persingkat riwayat atau gunakan model dengan konteks lebih besar |
| 400 | `content_policy_violation` | Permintaan ditolak berdasarkan kebijakan model | Ubah susunan permintaan |
| 401 | `invalid_api_key` | Kunci tidak ada atau tidak valid | Pastikan kunci dikirim secara lengkap |
| 401 | `api_key_disabled` | Kunci dinonaktifkan | Aktifkan kunci atau buat kunci baru |
| 402 | `insufficient_balance`, `insufficient_quota` | Saldo bebas tidak cukup bahkan untuk penahanan saldo minimum (`insufficient_quota` — kasus yang sama dalam bentuk yang dikenal OpenAI SDK) | Isi ulang saldo atau kurangi max\_tokens |
| 402 | `api_key_quota_exhausted` | Batas pengeluaran total kunci habis | Naikkan batas kunci dalam dasbor |
| 402 | `payment_disputed` | Akun memiliki utang akibat pembayaran yang disengketakan | Permintaan baru ditangguhkan hingga utang dilunasi — hubungi dukungan |
| 403 | `api_key_expired` | Masa berlaku kunci habis | Buat kunci baru |
| 403 | `account_inactive` | Akun Anda dinonaktifkan | Hubungi dukungan |
| 403 | `permission_denied` | Kunci tidak diizinkan untuk permintaan ini (misalnya karena IP) | Periksa batasan kunci |
| 404 | `model_not_found` | Model tidak ditemukan | Cocokkan ID dengan /v1/models |
| 404 | `unsupported_endpoint` | Model tidak berfungsi dalam format ini | Pilih format atau model lain |
| 404 | `not_found` | Jalur atau objek tidak ditemukan (misalnya tugas) | Periksa alamat dan ID |
| 409 | `duplicate_request` | Operasi dengan kunci idempotensi yang sama telah diterima dan mungkin sudah selesai | Periksa hasil operasi pertama; jangan kirim operasi baru |
| 409 | `not_ready`, `video_not_ready` | Video atau tugas lain belum selesai | Periksa status nanti |
| 409, 503 | `result_pending_check` | Hasil permintaan sedang diperiksa. Pada tugas video, ini ditunjukkan oleh flag `result_pending_check: true` dalam respons status; tugas tetap `in_progress` | Jangan kirim ulang permintaan — status akan muncul dalam riwayat (GET https://ailoot.ai/api/v1/usage). Jangan buat ulang tugas video: periksa nanti melalui GET /v1/videos/{id} |
| 410 | `model_retired` | Model telah dihentikan dari layanan | Pilih versi baru dalam GET /v1/models |
| 413 | `request_too_large` | Isi permintaan terlalu besar | Kurangi ukuran file atau riwayat |
| 429 | `rate_limit_exceeded`, `gateway_concurrency_limit`, `gateway_queue_full` | Terlalu banyak permintaan atau permintaan serentak dari akun Anda | Tunggu (header `Retry-After`, biasanya 10 detik), lalu coba lagi |
| 429 | `usage_limit_reached` | Batas pengeluaran kunci per jendela waktu habis (5 jam, 1 hari, atau 7 hari) | Tunggu hingga jendela diperbarui atau naikkan batas kunci |
| 500 | `internal_error` | Kesalahan Ailoot | Hubungi dukungan dengan Request ID |
| 502 | `invalid_model_response`, `empty_response`, `incomplete_response` | Model mengembalikan respons tidak valid, kosong, atau tidak lengkap | Cari Request ID dalam riwayat dasbor. Jika ada hasil atau pendebitan, pengulangan akan membuat permintaan berbayar kedua. Tidak adanya catatan bukan bukti bahwa permintaan belum dikirim atau belum dijalankan: jangan kirim ulang permintaan yang status pengirimannya tidak diketahui; hubungi dukungan dengan menyertakan Request ID. |
| 502 | `result_not_delivered` | Hasil tidak terkirim karena kesalahan Ailoot; saldo yang ditahan atau biaya yang didebit telah dikembalikan | Permintaan dapat dikirim ulang |
| 503 | `model_overloaded` | Model sementara kelebihan beban | Jika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat |
| 503 | `model_unavailable` | Model sementara tidak tersedia | Pilih model lain. Jika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat |
| 503 | `service_unavailable` | Gangguan sementara pada Ailoot | Jika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat |
| 503 | `charge_not_confirmed` | Respons tidak diberikan: pendebitan tidak dapat dikonfirmasi; saldo yang ditahan dikembalikan, tidak ada pendebitan | Jika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat |
| 504 | `model_timeout` | Model tidak merespons tepat waktu; hasil masih mungkin muncul | Jangan kirim ulang permintaan sebelum memeriksa Request ID dalam riwayat |

Kode respons model dan pemeriksaan hasil (502, 503, dan 504) kini merujuk pada model atau permintaan: `model_unavailable`, `model_timeout`, `invalid_model_response`, `incomplete_response`, `charge_not_confirmed` dan `result_pending_check`. Jika kode Anda membandingkan `error.code` dengan nilai lama, ganti dengan kode pada tabel; pemetaan kode lama ke kode baru dapat dijelaskan oleh [dukungan](https://ailoot.ai/docs/id/support/).

## [](https://ailoot.ai/docs/id/errors/#retry)Kapan mengulang permintaan

- **Periksa X-Should-Retry terlebih dahulu**: jika `false`, `result_pending_check` atau `model_timeout` jangan ulangi secara otomatis. Cari Request ID dalam riwayat dasbor: hasil dan pendebitan terlihat di sana.
- **Pengulangan aman jika X-Should-Retry: true diterima**: tunggu `Retry-After` detik. Untuk 5xx, kode saja tidak cukup: hasil mungkin sudah ada. Periksa dahulu riwayat dasbor atau hubungi dukungan dengan Request ID. Ini sangat penting untuk gambar, video, musik, dan langkah agen yang panjang.
- **Pengulangan tidak akan membantu**: 400, 401, 402, 403, 404 — perbaiki dahulu permintaan, kunci, atau saldo.

SDK OpenAI dan Anthropic biasanya mengulang kesalahan jaringan dan 5xx secara otomatis. Nonaktifkan untuk generasi (`max_retries=0`) dan periksa `X-Should-Retry` sebelum mencoba lagi. Respons yang hilang tidak berarti permintaan belum dijalankan.

## [](https://ailoot.ai/docs/id/errors/#limits)Batas

Frekuensi dan jumlah permintaan serentak dibatasi untuk seluruh akun Anda, bukan setiap kunci. Jika terlampaui, responsnya 429 `rate_limit_exceeded` dengan header `Retry-After: 10`. Jika model itu sendiri kelebihan beban — 503 `model_overloaded` dengan `Retry-After: 30`. Jika membutuhkan beban lebih besar, hubungi [dukungan](https://ailoot.ai/docs/id/support/).

Batas pengeluaran diatur pada kunci: batas total — 402 `api_key_quota_exhausted`, jendela 5 jam, 1 hari, dan 7 hari — 429 `usage_limit_reached`. Selengkapnya — [Kunci dan alamat API](https://ailoot.ai/docs/id/keys/#key).

## [](https://ailoot.ai/docs/id/errors/#nvidia)Model NVIDIA: antrean

Daftar model dapat diminta dengan saldo nol; generasi memerlukan saldo untuk ditahan. Model NVIDIA (Nemotron dan lainnya) menggunakan antrean bersama: saat beban tinggi, respons dapat terlambat atau kesalahan “model sementara kelebihan beban” dikembalikan dengan header Retry-After — coba lagi setelah waktu tersebut. Harga tersedia dalam katalog; pendebitan mengikuti aturan model lainnya.

Batas ukuran ditetapkan oleh model: konteks (jumlah token yang dapat dikirim) dan panjang respons maksimum. Keduanya tercantum dalam [katalog](https://ailoot.ai/models/id/).

## Riwayat dan biaya

[Riwayat dan biaya](https://ailoot.ai/usage) · [GET https://ailoot.ai/api/v1/usage](https://ailoot.ai/docs/id/cabinet/usage/) · JWT · `Authorization: Bearer $TOKEN`

`JWT ≠ sk-…` · [Login dan sesi](https://ailoot.ai/docs/id/cabinet/auth/)

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.[Hubungi dukungan](mailto:support@ailoot.ai)

## Ailoot · Perusahaan dan portofolio proyeknya





Ailoot bertumpu pada pengalaman operasional yang teruji, basis pelanggan yang besar, layanan yang stabil, dan pemantauan KPI berkelanjutan.





Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.





Ailoot memanfaatkan pengalaman operasional ini untuk akses API ke fitur AI dalam produk pelanggan, agen, aplikasi, dan otomatisasi.
