Device WhatsApp yang sering terputus dapat menghentikan proses pengiriman dan penerimaan pesan melalui API. Kondisi ini berbeda dengan logout karena session device masih dapat tetap tersedia dan koneksi bisa kembali tanpa pairing ulang.
Masalah biasanya terlihat ketika status device berubah berulang kali dari CONNECTED menjadi DISCONNECTED, kemudian kembali terhubung beberapa saat kemudian.

Bedakan Device Terputus dan Logout
Sebelum memperbaiki masalah, pastikan kondisi yang terjadi memang disconnect.
Contoh device terputus:
CONNECTED
↓
DISCONNECTED
↓
CONNECTED
`
Pada kondisi ini, session masih dapat digunakan dan device dapat terhubung kembali.
Sedangkan logout biasanya memiliki alur:
CONNECTED
↓
LOGGED OUT
↓
Pairing ulang
↓
CONNECTED
Jika device hanya sering terputus, jangan langsung melakukan scan QR berulang kali.
Fokus pemeriksaan sebaiknya diarahkan ke koneksi server, proses aplikasi, session, jaringan, dan konfigurasi device.
1. Periksa Status Device
Langkah pertama adalah melihat status device ketika koneksi terputus.
Whapi menyediakan status device melalui API sehingga aplikasi dapat memeriksa kondisi koneksi tanpa hanya mengandalkan kegagalan request pengiriman.
Catat perubahan status seperti:
CONNECTED
DISCONNECTED
CONNECTED
DISCONNECTED
Jika perubahan terjadi berulang, simpan waktu setiap event.
Contoh:
10:00:01 CONNECTED
10:15:22 DISCONNECTED
10:15:27 CONNECTED
10:48:10 DISCONNECTED
10:48:15 CONNECTED
Dari data tersebut dapat diketahui apakah disconnect terjadi sesekali atau terus berulang dalam interval tertentu.
2. Periksa Koneksi Internet Server
Server membutuhkan koneksi internet yang stabil untuk mempertahankan komunikasi dengan layanan WhatsApp.
Periksa koneksi dasar server:
ping 1.1.1.1
Kemudian periksa DNS:
nslookup google.com
Jika koneksi mengalami packet loss, latency tinggi, atau DNS bermasalah, koneksi device dapat ikut terganggu.
Masalah jaringan dapat berasal dari:
- koneksi provider server,
- firewall,
- routing,
- DNS,
- proxy,
- atau aturan outbound connection.
Jangan hanya memastikan server masih dapat membuka website. Periksa kestabilan koneksi selama device aktif.
3. Periksa Penggunaan RAM
RAM yang hampir penuh dapat membuat proses WhatsApp API tidak stabil.
Periksa penggunaan RAM:
free -h
Untuk melihat proses yang menggunakan banyak memory:
top
atau:
htop
Perhatikan apakah penggunaan RAM meningkat terus:
RAM 70%
↓
RAM 80%
↓
RAM 90%
↓
RAM 100%
↓
Process berhenti
↓
Device disconnected
Jika pola tersebut terjadi, masalah koneksi kemungkinan merupakan efek dari proses aplikasi yang dihentikan oleh sistem.
Periksa juga jumlah device aktif karena semakin banyak device yang berjalan pada server, semakin besar kebutuhan resource.
4. Pastikan Process API Tetap Berjalan
Jika process API berhenti sesaat, koneksi device juga dapat terputus.
Pada server Linux, periksa service:
systemctl status nama-service
Jika menggunakan PM2:
pm2 status
Kemudian lihat log:
pm2 logs
Cari pesan seperti:
process exited
uncaught exception
out of memory
connection closed
restart
Jika process restart setiap beberapa menit, perbaiki penyebab restart terlebih dahulu.
Restart otomatis memang dapat membuat service kembali aktif, tetapi tidak menyelesaikan masalah jika process terus crash.
5. Periksa Apakah Server Sering Restart
Server restart dapat memutus seluruh device yang sedang aktif.
Contohnya:
Server aktif
↓
10 device CONNECTED
↓
Server restart
↓
Semua device DISCONNECTED
↓
Service aktif kembali
↓
Device reconnect
Jika semua device terputus pada waktu yang sama, periksa aktivitas server.
Cari:
- reboot,
- kernel error,
- maintenance,
- perubahan konfigurasi,
- deploy,
- restart Docker,
- atau restart service.
Jika hanya satu device yang terputus sedangkan device lain tetap normal, kemungkinan masalah tidak berada pada server secara keseluruhan.
6. Periksa Session Device
Session yang tidak tersimpan dengan baik dapat membuat proses reconnect bermasalah.
Pastikan data session tidak hilang ketika:
- aplikasi restart,
- server reboot,
- container restart,
- deploy,
- atau process manager menjalankan ulang aplikasi.
Struktur sederhana:
Application
↓
Session Storage
↓
Device
Session sebaiknya menggunakan storage yang tetap tersedia setelah proses aplikasi berhenti.
Jika session hanya berada di memory, restart process dapat menyebabkan aplikasi kehilangan informasi yang dibutuhkan untuk mempertahankan koneksi.
7. Periksa Docker Volume
Jika aplikasi dijalankan menggunakan Docker, pastikan session menggunakan volume persisten.
Tanpa volume:
Container
↓
Session tersimpan di container
↓
Container dihapus
↓
Session hilang
Dengan volume:
Container
↓
Session
↓
Persistent Volume
↓
Container restart
↓
Session tetap tersedia
Contoh konfigurasi konsep:
volumes:
- whatsapp_sessions:/app/sessions
Lokasi /app/sessions harus disesuaikan dengan direktori session aplikasi.
8. Periksa Proxy
Jika device menggunakan proxy, periksa kestabilan proxy.
Periksa:
- host,
- port,
- username,
- password,
- latency,
- timeout,
- dan koneksi proxy.
Jika hanya device yang menggunakan proxy tertentu yang sering disconnect, bandingkan dengan device lain.
Contoh:
Device 01 → Proxy A → sering disconnect
Device 02 → Proxy B → normal
Device 03 → Proxy C → normal
Pola tersebut menunjukkan bahwa Proxy A layak diperiksa lebih lanjut.
Jangan mengganti semua konfigurasi proxy sekaligus karena perubahan tersebut dapat menyulitkan pencarian sumber masalah.
9. Periksa Firewall dan Outbound Connection
Firewall server dapat memengaruhi koneksi keluar.
Periksa apakah terdapat aturan yang:
- memblokir koneksi tertentu,
- memutus koneksi idle,
- membatasi port,
- atau membatasi traffic keluar.
Jika menggunakan cloud server, periksa juga firewall pada panel provider.
Pastikan perubahan firewall tidak dilakukan tanpa mencatat konfigurasi sebelumnya.
10. Periksa Timeout
Timeout yang terlalu pendek dapat menyebabkan aplikasi menganggap koneksi gagal sebelum proses selesai.
Misalnya aplikasi memiliki timeout:
5 detik
sementara koneksi membutuhkan waktu lebih lama.
Aplikasi kemudian menganggap:
Request timeout
↓
Connection dianggap gagal
Gunakan timeout yang sesuai dengan karakteristik server dan jaringan.
Namun jangan menaikkan timeout secara berlebihan tanpa mengetahui penyebab keterlambatan.
Timeout yang terlalu panjang juga dapat membuat koneksi bermasalah sulit terdeteksi.
11. Periksa Log Saat Disconnect Terjadi
Log harus diperiksa beberapa saat sebelum dan sesudah device terputus.
Contoh:
14:20:01 Device CONNECTED
14:25:10 Message sent
14:25:12 Network warning
14:25:15 Connection closed
14:25:16 Device DISCONNECTED
14:25:22 Device CONNECTED
Dari urutan tersebut, pemeriksaan dapat diarahkan ke network warning.
Jika log menunjukkan:
14:25:10 Process restart
14:25:11 Device DISCONNECTED
14:25:20 Device CONNECTED
maka pemeriksaan lebih tepat diarahkan ke process aplikasi.
Jangan hanya mengambil log:
Device DISCONNECTED
Cari event yang muncul tepat sebelum disconnect.
12. Pantau Status Device melalui Webhook
Webhook dapat digunakan untuk mencatat perubahan status secara otomatis.
Contoh receiver:
app.post('/webhook/whapi', (req, res) => {
const payload = req.body;
console.log('Webhook event:', payload);
// Simpan event status device
res.sendStatus(200);
});
Simpan data seperti:
device_id
event
status
timestamp
Contoh riwayat:
device-001
17:00 CONNECTED
17:32 DISCONNECTED
17:33 CONNECTED
18:10 DISCONNECTED
18:11 CONNECTED
Riwayat tersebut dapat digunakan untuk menghitung frekuensi disconnect.
13. Cari Pola Disconnect
Device yang terputus sekali belum tentu mengalami masalah serius.
Masalah lebih jelas jika terdapat pola:
Setiap 10 menit
↓
DISCONNECTED
↓
5 detik kemudian
↓
CONNECTED
Atau:
Setiap server restart
↓
Semua device disconnect
Atau:
Device tertentu
↓
Disconnect lebih sering
↓
Device lain normal
Setiap pola membutuhkan pemeriksaan yang berbeda.
Karena itu, monitoring status lebih berguna daripada hanya melihat kondisi device saat ini.
14. Bandingkan Beberapa Device
Jika server menjalankan beberapa device, gunakan device lain sebagai pembanding.
Contoh:
| Device | Kondisi |
|---|---|
| Device 01 | Sering disconnect |
| Device 02 | Normal |
| Device 03 | Normal |
| Device 04 | Normal |
Jika hanya Device 01 yang bermasalah, periksa konfigurasi device tersebut.
Sebaliknya:
| Device | Kondisi |
|---|---|
| Device 01 | Disconnect |
| Device 02 | Disconnect |
| Device 03 | Disconnect |
| Device 04 | Disconnect |
Jika semuanya terputus pada waktu yang sama, periksa server atau koneksi global.
15. Jangan Langsung Scan QR
Scan QR digunakan untuk menghubungkan device, bukan untuk memperbaiki koneksi server yang tidak stabil.
Jika device hanya mengalami:
CONNECTED
↓
DISCONNECTED
↓
CONNECTED
maka scan QR tidak diperlukan.
Scan QR berulang kali justru dapat membuat troubleshooting lebih sulit karena kondisi session berubah selama pemeriksaan.
Gunakan pairing ulang hanya ketika device memang membutuhkan proses pairing kembali.
16. Periksa Deployment
Jika device mulai sering disconnect setelah deployment, bandingkan konfigurasi sebelum dan sesudah deployment.
Periksa:
Environment variable
Session storage
Docker volume
Proxy
Firewall
Dependency
Process manager
Contoh:
Sebelum deploy → device stabil
↓
Deploy versi baru
↓
Device sering disconnect
Versi baru perlu diperiksa sebelum melakukan perubahan lain pada server.
17. Pastikan Service Tidak Kehabisan Resource
Selain RAM, periksa resource lain seperti:
- CPU,
- disk,
- network,
- file descriptor,
- dan jumlah process.
CPU yang terlalu tinggi:
CPU 100%
↓
Process lambat
↓
Connection timeout
↓
Device disconnected
Disk yang penuh juga dapat menyebabkan aplikasi gagal menulis log, database, atau session.
Periksa:
df -h
Jika disk hampir penuh, bersihkan data yang tidak diperlukan sesuai kebijakan penyimpanan aplikasi.
18. Buat Monitoring Sederhana
Untuk sistem dengan banyak device, buat tabel monitoring:
| Device | Status | Last Connected | Last Disconnect | Frekuensi |
|---|---|---|---|---|
| device-001 | CONNECTED | 17:50 | 17:20 | 2 |
| device-002 | CONNECTED | 17:51 | 15:10 | 1 |
| device-003 | DISCONNECTED | 16:30 | 17:45 | 5 |
Data tersebut membantu menemukan device yang paling sering bermasalah.
Monitoring juga dapat digunakan untuk membuat notifikasi ketika:
Device disconnect
↓
Tidak reconnect dalam X menit
↓
Kirim alert
Dengan begitu, masalah dapat diketahui sebelum pengiriman pesan bisnis terganggu terlalu lama.
19. Urutan Troubleshooting yang Disarankan
Gunakan urutan berikut agar pemeriksaan tidak melebar:
1. Cek status device
↓
2. Cek waktu disconnect
↓
3. Bandingkan dengan device lain
↓
4. Cek process aplikasi
↓
5. Cek RAM dan CPU
↓
6. Cek restart server
↓
7. Cek session storage
↓
8. Cek jaringan
↓
9. Cek proxy
↓
10. Cek firewall
↓
11. Cek log
↓
12. Pantau reconnect
Jika disconnect hanya terjadi pada satu device, mulai dari konfigurasi device.
Jika semua device terputus bersamaan, mulai dari server, network, atau service.
20. Checklist Device WhatsApp Sering Terputus
Gunakan checklist berikut sebagai panduan penanganan masalah (troubleshooting step-by-step) ketika koneksi nomor WhatsApp API/bot sering terputus atau disconnect secara tiba-tiba dari server.
- [ ] Status device sudah diperiksa
- [ ] Disconnect dibedakan dari logout
- [ ] Waktu disconnect dicatat
- [ ] Device lain digunakan sebagai pembanding
- [ ] Server tidak sering restart
- [ ] Process API tidak sering crash
- [ ] RAM mencukupi
- [ ] CPU tidak terus-menerus penuh
- [ ] Disk tidak penuh
- [ ] Session tersimpan secara persisten
- [ ] Docker volume sudah benar jika digunakan
- [ ] Koneksi internet stabil
- [ ] Proxy stabil jika digunakan
- [ ] Firewall tidak memutus koneksi
- [ ] Timeout sudah sesuai
- [ ] Log sebelum disconnect sudah diperiksa
- [ ] Status device dipantau melalui webhook
- [ ] Pairing ulang tidak dilakukan tanpa pemeriksaan
Kesimpulan
Cara mengatasi device WhatsApp yang sering terputus dimulai dengan menentukan apakah masalah berasal dari device, aplikasi, server, session, atau jaringan.
Jika hanya satu device yang sering disconnect, periksa konfigurasi dan koneksi device tersebut. Jika semua device terputus bersamaan, periksa server, process aplikasi, jaringan, dan deployment.
Hindari langsung melakukan scan QR setiap kali device terputus. Selama session masih valid dan device dapat reconnect, masalah lebih tepat dicari pada kestabilan koneksi dan server.
Untuk sistem dengan banyak device, simpan riwayat perubahan status melalui webhook agar frekuensi disconnect, waktu kejadian, dan pola koneksi dapat dianalisis secara otomatis.


