Ralat dan Had API
Kendalikan kod ralat awam Rivya API, nilai status HTTP, had kadar, konflik idempotency, dan keputusan retry.
Terakhir disemak pada 2026/05/11
Rivya API mengembalikan kod ralat awam yang stabil dalam JSON. Anggap nilai error.code sebagai kontrak integrasi.
Bentuk Ralat
{
"error": {
"code": "api_key_missing",
"message": "A valid Bearer API key is required.",
"requestId": "req_..."
}
}Simpan requestId dalam log anda apabila meminta sokongan Rivya menyiasat permintaan API yang gagal.
Kod Ralat Stabil
| Code | Status HTTP | Maksud | Tindakan disarankan |
|---|---|---|---|
public_api_disabled | 503 | Panggilan Public API dilumpuhkan sementara. | Cuba semula kemudian atau gunakan Studio secara manual. |
api_key_missing | 401 | Permintaan tidak menyertakan Bearer API key. | Hantar Authorization: Bearer rvya_sk_.... |
api_key_invalid | 401 | Key tidak dapat disahkan. | Semak key dan rotate jika perlu. |
api_key_revoked | 401 | Key sudah dibatalkan dalam Settings. | Cipta key baharu. |
api_key_expired | 401 | Key tidak lagi sah. | Cipta key baharu. |
api_scope_denied | 403 | Key tidak mempunyai scope yang diperlukan. | Cipta key dengan scope yang diperlukan. |
rate_limited | 429 | Terlalu banyak permintaan dalam window semasa. | Perlahan dan cuba semula kemudian. |
validation_failed | 400 | Body, model, prompt, atau params tidak sah. | Bandingkan body anda dengan rujukan model. |
not_found | 404 | Tugasan yang diminta tidak wujud atau bukan milik akaun. | Semak public task ID dan boundary akaun. |
webhook_url_rejected | 400 | URL endpoint webhook tidak dibenarkan. | Gunakan URL HTTPS awam tanpa credentials, fragments, localhost, atau alamat rangkaian peribadi. |
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 | Sesi chat tidak boleh digunakan untuk permintaan ini. | Gunakan sesi ciptaan API yang dimiliki akaun dan model yang sama. |
chat_attachment_not_supported | 400 | Lampiran chat tidak disokong. | Muat naik imej melalui Files API dan hantar file_id-nya. |
idempotency_conflict | 409 | Idempotency key yang sama digunakan semula dengan input berbeza. | Gunakan key baharu atau hantar semula body yang sama tepat. |
insufficient_credits | 402 | Akaun tidak mempunyai kredit yang mencukupi. | Tambah kredit atau pilih permintaan berkos lebih rendah. |
internal_error | 500 | Permintaan tidak dapat diselesaikan. | Cuba semula dengan idempotency atau hubungi sokongan bersama requestId. |
Had Kadar
Rivya menggunakan had kadar Public API peringkat aplikasi bagi setiap API key. Had production lalai dikonfigurasi oleh PUBLIC_API_RATE_LIMIT_PER_MINUTE.
Apabila anda menerima rate_limited, gunakan exponential backoff. Jangan retry dalam loop yang rapat.
Retry Idempotent
Hantar Idempotency-Key dengan setiap permintaan production POST /api/v1/generations dan POST /api/v1/chat/completions.
Corak disarankan:
jana key unik bagi setiap permintaan generation logik
gunakan semula key yang sama hanya apabila retry body yang sama
simpan public task ID yang dikembalikan bersama rekod kerja anda sendiri
untuk Chat API, simpan
session_idyang dikembalikan apabila anda mahu meneruskan perbualan yang samajangan guna semula satu key untuk model, prompt, atau params yang berbeza
Jika rangkaian gagal selepas submission, retry dengan body yang sama dan Idempotency-Key yang sama. Rivya boleh mengembalikan respons awam tersimpan, bukan mencipta tugasan pendua.
Keputusan Retry
Retry ini dengan backoff:
public_api_disabledrate_limitedinternal_errorkegagalan rangkaian sementara
Jangan retry ini tanpa mengubah input:
api_key_invalidapi_key_revokedapi_scope_deniedvalidation_failedwebhook_url_rejectedchat_model_not_supportedchat_session_conflictchat_attachment_not_supportedidempotency_conflictinsufficient_credits