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 sama - jangan 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_error- kegagalan 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