Error dan Limit API
Tangani kode error publik Rivya API, nilai HTTP status, rate limit, konflik idempotensi, dan keputusan retry.
Terakhir ditinjau pada 2026/05/11
Rivya API mengembalikan kode error publik yang stabil dalam JSON. Perlakukan nilai error.code sebagai kontrak integrasi.
Bentuk Error
{
"error": {
"code": "api_key_missing",
"message": "A valid Bearer API key is required.",
"requestId": "req_..."
}
}Simpan requestId di log Anda saat meminta dukungan Rivya menyelidiki permintaan API yang gagal.
Kode Error Stabil
| Code | HTTP status | Arti | Tindakan yang disarankan |
|---|---|---|---|
public_api_disabled | 503 | Panggilan Public API sedang dinonaktifkan sementara. | Coba lagi nanti atau gunakan Studio secara manual. |
api_key_missing | 401 | Permintaan tidak menyertakan Bearer API key. | Kirim Authorization: Bearer rvya_sk_.... |
api_key_invalid | 401 | Key tidak dapat diverifikasi. | Periksa key dan rotasi jika perlu. |
api_key_revoked | 401 | Key dicabut di Settings. | Buat key baru. |
api_key_expired | 401 | Key tidak lagi valid. | Buat key baru. |
api_scope_denied | 403 | Key tidak memiliki scope yang dibutuhkan. | Buat key dengan scope yang diperlukan. |
rate_limited | 429 | Terlalu banyak permintaan dalam window saat ini. | Mundur sejenak dan coba lagi nanti. |
validation_failed | 400 | Body, model, prompt, atau params tidak valid. | Bandingkan body Anda dengan referensi model. |
not_found | 404 | Tugas yang diminta tidak ada atau bukan milik akun. | Periksa ID tugas publik dan batas akun. |
webhook_url_rejected | 400 | URL endpoint webhook tidak diizinkan. | Gunakan URL HTTPS publik tanpa credentials, fragment, localhost, atau alamat jaringan privat. |
chat_model_not_supported | 400 | Model yang dipilih tidak tersedia untuk Chat API. | Baca /api/v1/models dan pilih model chat yang tersedia. |
chat_session_conflict | 409 | Session chat tidak dapat digunakan untuk permintaan ini. | Gunakan session yang dibuat API, milik akun dan model yang sama. |
chat_attachment_not_supported | 400 | Lampiran chat tidak didukung. | Unggah gambar melalui Files API dan kirim file_id-nya. |
idempotency_conflict | 409 | Idempotency key yang sama dipakai ulang dengan input berbeda. | Gunakan key baru atau kirim ulang body yang persis sama. |
insufficient_credits | 402 | Akun tidak memiliki credits yang cukup. | Tambahkan credits atau pilih permintaan dengan biaya lebih rendah. |
internal_error | 500 | Permintaan tidak dapat diselesaikan. | Retry dengan idempotensi atau hubungi support dengan requestId. |
Rate Limit
Rivya menerapkan rate limit Public API tingkat aplikasi per API key. Limit production default dikonfigurasi oleh PUBLIC_API_RATE_LIMIT_PER_MINUTE.
Saat menerima rate_limited, gunakan exponential backoff. Jangan retry dalam loop yang rapat.
Retry Idempoten
Kirim Idempotency-Key dengan setiap permintaan production POST /api/v1/generations dan POST /api/v1/chat/completions.
Pola yang disarankan:
- buat key unik untuk setiap permintaan generasi logis
- gunakan ulang key yang sama hanya saat retry body yang sama
- simpan ID tugas publik yang dikembalikan bersama record job Anda sendiri
- untuk Chat API, simpan
session_idyang dikembalikan saat Anda ingin melanjutkan percakapan yang sama - jangan gunakan satu key untuk model, prompt, atau params yang berbeda
Jika jaringan gagal setelah submission, retry dengan body yang sama dan Idempotency-Key yang sama. Rivya dapat mengembalikan respons publik yang tersimpan alih-alih membuat tugas duplikat.
Keputusan Retry
Retry error berikut dengan backoff:
public_api_disabledrate_limitedinternal_error- kegagalan jaringan sementara
Jangan retry error berikut tanpa mengubah input:
api_key_invalidapi_key_revokedapi_scope_deniedvalidation_failedwebhook_url_rejectedchat_model_not_supportedchat_session_conflictchat_attachment_not_supportedidempotency_conflictinsufficient_credits
Halaman Terkait
Credits API
Pahami bagaimana panggilan Rivya API memakai credits akun, pemeriksaan saldo, credits yang direservasi, refund tugas gagal, dan troubleshooting credits.
Files API
Unggah file referensi gambar, video, atau audio untuk permintaan generasi Rivya API, dengan pemeriksaan MIME, batas ukuran, dan duration token.