Referensi lengkap kode error API Chatera, penyebab umum, dan cara mengatasinya.
Semua error dari API Chatera memakai envelope yang sama:
{ "success": false, "error": { "code": "VALIDATION_INVALID_PHONE", "message": "Format nomor telepon tidak valid", "details": { "field": "to", "hint": "..." } }}
error.code adalah identifier mesin yang stabil — pakai untuk
branching logic di handler kamu (jangan parse message, karena
kalimatnya bisa berubah).
Isi error.details bervariasi per kode error:
Field details
Muncul di
Isi
details.field + details.hint
Error validasi
Nama field yang bermasalah + petunjuk perbaikan
details.errors[]
Validasi multi-field (mis. komponen template)
Array { field, message }
details.error
WHATSAPP_SEND_FAILED
Pesan error asli dari Meta, diteruskan apa adanya — mis. (#132001) Template name does not exist in the translation. Ini sumber informasi paling akurat saat pengiriman ditolak Meta
Field wajib tidak ada — termasuk channel_id saat organisasi punya lebih dari satu saluran WhatsApp aktif
Lihat details.field untuk nama field
VALIDATION_INVALID_FIELD
400
Format field tidak valid (panjang, tipe, regex). Juga dipakai untuk pesan reaction, sticker, dan contacts yang field-nya kurang, serta reaction.message_id (UUID Chatera) yang tidak ditemukan
channel_id tidak valid / tidak aktif, atau organisasi belum punya saluran WhatsApp aktif
Cek saluran aktif di dashboard
WHATSAPP_SEND_FAILED
500
Meta menolak request
Baca details.error (pesan asli Meta). Untuk #132001 lihat troubleshooting template. Error 5xx boleh di-retry dengan backoff.
WHATSAPP_MEDIA_UPLOAD_FAILED
500
Dicadangkan, saat ini belum dikembalikan endpoint mana pun. URL media yang gagal di-fetch Meta biasanya dilaporkan belakangan lewat webhook message.failed
Pastikan URL HTTPS publik dan ukuran sesuai limit Meta
Ya, dengan exponential backoff. Hormati header X-RateLimit-Reset
500, 502, 503, 504
Ya, dengan exponential backoff (1s → 2s → 4s → 8s)
Network error / timeout
Ya, dengan exponential backoff
Jangan retry pesan WhatsApp tanpa idempotency
Kalau request POST /v1/whatsapp/messages mengembalikan timeout
network (bukan 4xx/5xx dari server), pesan mungkin sudah dikirim.
Cek webhook message.sent sebelum retry, atau implementasikan
deduplication di sisi kamu (lihat Konvensi).