# Kode galat

Semua kode galat API pelanggan dengan status HTTP dan artinya.

Galat memakai bentuk OpenAI. Cocokkan `code`, bukan teks `message`.

```json
{
  "error": {
    "message": "...",
    "type": "...",
    "code": "insufficient_balance"
  }
}
```

| Kode | HTTP | Artinya |
|---|---|---|
| `invalid_api_key` | 401 | Kunci API salah, dicabut, diblokir, atau kedaluwarsa. |
| `insufficient_balance` | 402 | Saldo tidak cukup. Isi saldo lalu coba lagi. |
| `plan_quota_exhausted` | 429 | Jatah paket habis. |
| `rate_limit_exceeded` | 429 | Terlalu banyak request. Coba lagi sebentar lagi. |
| `model_not_found` | 404 | Model tidak ada atau tidak boleh dipakai kunci ini. |
| `unsupported_endpoint` | 404 | Endpoint ini tidak tersedia. |
| `not_found` | 404 | Data tidak ditemukan. |
| `request_too_large` | 413 | Request terlalu besar. |
| `context_length_exceeded` | 400 | Input melewati panjang konteks model. |
| `content_policy_violation` | 400 | Isi permintaan ditolak oleh kebijakan konten. |
| `upstream_unavailable` | 503 | Layanan model sedang tidak tersedia. Coba lagi nanti. |
| `upstream_timeout` | 504 | Model terlalu lama menjawab. Coba lagi. |
| `turnstile_failed` | 400 | Pemeriksaan keamanan gagal. Coba lagi. |
| `terms_required` | 400 | Setujui Ketentuan Layanan dan Kebijakan Privasi untuk mendaftar. |

## Cara menanggapi

- `invalid_api_key`: periksa kunci di console. Jangan diulang tanpa perubahan.
- `insufficient_balance`: isi saldo, atau kecilkan `max_tokens` karena biaya dicadangkan lebih dulu.
- `plan_quota_exhausted`: jatah paket habis dan paket diatur menolak request. Tunggu jatah terisi lagi atau ganti paket.
- `rate_limit_exceeded`: tunggu sebentar, lalu ulangi. Pakai jeda yang makin panjang. Lihat [Batas laju](https://sivcloud.com/docs/batas-laju/).
- `upstream_unavailable` dan `upstream_timeout`: sementara. Ulangi setelah beberapa detik.
- `context_length_exceeded`: kurangi panjang prompt atau pilih model dengan konteks lebih besar.
