Appearance
Kode Error & Troubleshooting
Setiap response error dari API mengikuti format yang seragam:
json
{
"error": "deskripsi singkat masalah"
}Daftar Kode Status HTTP
2xx — Berhasil
| Kode | Nama | Artinya |
|---|---|---|
200 OK | Berhasil | Request berhasil, data ada di body response |
202 Accepted | Diterima | Pesan diterima dan masuk antrean (pengiriman asinkron) |
4xx — Kesalahan dari Sisi Anda
| Kode | Nama | Artinya | Yang Harus Dilakukan |
|---|---|---|---|
400 Bad Request | Request Tidak Valid | Field wajib kosong, format salah, atau kombinasi field tidak valid | Periksa body request — baca pesan error untuk detail field mana yang bermasalah |
401 Unauthorized | Tidak Terautentikasi | API key tidak disertakan atau tidak valid | Pastikan header Authorization: Bearer wag_xxx ada dan key-nya benar |
403 Forbidden | Tidak Diizinkan | Anda tidak punya akses ke resource ini | Cek apakah sesi milik akun Anda, atau apakah ToS sudah disetujui |
409 Conflict | Konflik | Sesi tidak sedang dihosting worker (offline) | Tunggu sesi online, atau lakukan pairing ulang |
429 Too Many Requests | Rate Limit | Terlalu banyak request dalam waktu singkat | Lihat header Retry-After, tunggu sebelum retry — lihat Rate Limit |
5xx — Kesalahan dari Sisi Server
| Kode | Nama | Artinya | Yang Harus Dilakukan |
|---|---|---|---|
500 Internal Server Error | Error Internal | Terjadi kesalahan tak terduga di server | Coba ulang setelah beberapa saat; hubungi support jika berlanjut |
502 Bad Gateway | Gateway Error | Server gagal meneruskan ke komponen internal (misal: broker pesan) | Aman untuk retry — gunakan Idempotency-Key yang sama agar tidak kirim pesan ganda |
Error Umum & Solusinya
"session does not belong to this tenant"
Sesi yang Anda sebut di session_id tidak terdaftar di akun Anda.
- Pastikan
session_idyang dipakai adalah hasil pairing dari akun Anda sendiri - Cek dari Dashboard → Sesi untuk melihat session_id yang aktif
"session is not currently hosted by any worker"
Sesi ada di database, tapi tidak sedang terhubung ke WhatsApp saat ini.
Kemungkinan penyebab:
- Server baru restart, sesi sedang dalam proses reconnect (tunggu ~10 detik, coba lagi)
- Nomor WhatsApp di-logout dari perangkat tertaut di HP — perlu pairing ulang
- Sesi belum pernah paired sama sekali
"tos not accepted" / "terms of service not accepted"
Akun Anda belum menyetujui Terms of Service.
- Login ke Dashboard → ToS, baca dan setujui
- Atau via API:
POST /v1/tos/acceptdengan body{"version": "v1"}
"rate limit exceeded"
Anda mengirim terlalu banyak pesan dalam waktu singkat.
- Lihat header
Retry-Afterdi response — nilai dalam detik sebelum boleh coba lagi - Implementasikan exponential backoff: tunggu 1s, lalu 2s, lalu 4s, dst
- Lihat batas rate limit di halaman Rate Limit
Cara Debug
1. Baca field error di response body
Pesan error dirancang untuk menjelaskan masalahnya secara langsung:
json
{
"error": "media_type and media_url are required together"
}2. Perhatikan kode status HTTP
4xx= masalah ada di request Anda → perbaiki request5xx= masalah di server → retry dengan key yang sama
3. Gunakan Idempotency-Key yang sama saat retry
Untuk 5xx, aman untuk retry. Gunakan Idempotency-Key yang sama — server akan mengenali ini sebagai retry, bukan request baru, sehingga tidak ada pesan ganda.