dokumentasi
Bantuan

Kesalahan dan batas

Markdown

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

Panduan lengkap

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

Kode kesalahan

HTTPKelas (reason)Yang terjadiTindakan
400invalid_requestPermintaan 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
400context_length_exceededPermintaan melebihi konteks modelPersingkat riwayat atau gunakan model dengan konteks lebih besar
400content_policy_violationPermintaan ditolak berdasarkan kebijakan modelUbah susunan permintaan
401invalid_api_keyKunci tidak ada atau tidak validPastikan kunci dikirim secara lengkap
401api_key_disabledKunci dinonaktifkanAktifkan kunci atau buat kunci baru
402insufficient_balance, insufficient_quotaSaldo 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
402api_key_quota_exhaustedBatas pengeluaran total kunci habisNaikkan batas kunci dalam dasbor
402payment_disputedAkun memiliki utang akibat pembayaran yang disengketakanPermintaan baru ditangguhkan hingga utang dilunasi — hubungi dukungan
403api_key_expiredMasa berlaku kunci habisBuat kunci baru
403account_inactiveAkun Anda dinonaktifkanHubungi dukungan
403permission_deniedKunci tidak diizinkan untuk permintaan ini (misalnya karena IP)Periksa batasan kunci
404model_not_foundModel tidak ditemukanCocokkan ID dengan /v1/models
404unsupported_endpointModel tidak berfungsi dalam format iniPilih format atau model lain
404not_foundJalur atau objek tidak ditemukan (misalnya tugas)Periksa alamat dan ID
409duplicate_requestOperasi dengan kunci idempotensi yang sama telah diterima dan mungkin sudah selesaiPeriksa hasil operasi pertama; jangan kirim operasi baru
409not_ready, video_not_readyVideo atau tugas lain belum selesaiPeriksa status nanti
409, 503result_pending_checkHasil permintaan sedang diperiksa. Pada tugas video, ini ditunjukkan oleh flag result_pending_check: true dalam respons status; tugas tetap in_progressJangan 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}
410model_retiredModel telah dihentikan dari layananPilih versi baru dalam GET /v1/models
413request_too_largeIsi permintaan terlalu besarKurangi ukuran file atau riwayat
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullTerlalu banyak permintaan atau permintaan serentak dari akun AndaTunggu (header Retry-After, biasanya 10 detik), lalu coba lagi
429usage_limit_reachedBatas pengeluaran kunci per jendela waktu habis (5 jam, 1 hari, atau 7 hari)Tunggu hingga jendela diperbarui atau naikkan batas kunci
500internal_errorKesalahan AilootHubungi dukungan dengan Request ID
502invalid_model_response, empty_response, incomplete_responseModel mengembalikan respons tidak valid, kosong, atau tidak lengkapCari 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.
502result_not_deliveredHasil tidak terkirim karena kesalahan Ailoot; saldo yang ditahan atau biaya yang didebit telah dikembalikanPermintaan dapat dikirim ulang
503model_overloadedModel sementara kelebihan bebanJika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat
503model_unavailableModel sementara tidak tersediaPilih model lain. Jika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat
503service_unavailableGangguan sementara pada AilootJika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat
503charge_not_confirmedRespons tidak diberikan: pendebitan tidak dapat dikonfirmasi; saldo yang ditahan dikembalikan, tidak ada pendebitanJika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat
504model_timeoutModel tidak merespons tepat waktu; hasil masih mungkin munculJangan 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.

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.

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.

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.

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.

Riwayat dan biaya

Riwayat dan biaya · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Login dan sesi

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.Hubungi dukungan