Kenapa Device WhatsApp Sering Logout?

Device WhatsApp yang sering logout dapat membuat proses pengiriman dan penerimaan pesan dari API berhenti. Masalah ini biasanya berkaitan dengan sesi device, koneksi server, perubahan koneksi WhatsApp, atau proses pairing yang tidak stabil.

Jika device sering logout, jangan langsung membuat koneksi baru. Periksa terlebih dahulu kapan logout terjadi, apakah sesi benar-benar berakhir, dan apakah ada pola tertentu sebelum device terputus.

Penyebab Device WhatsApp Sering Logout

Perbedaan Logout dan Device Terputus

Logout dan terputus bukan kondisi yang selalu sama.

Device terputus berarti koneksi antara server dan device WhatsApp sedang tidak aktif. Device masih dapat memiliki sesi, sehingga koneksi dapat kembali tanpa melakukan pairing dari awal.

Logout berarti sesi device sudah tidak dapat digunakan dan biasanya membutuhkan proses koneksi atau pairing kembali.

Perbedaan ini penting karena solusi untuk koneksi terputus tidak selalu sama dengan solusi untuk sesi yang benar-benar logout.

Contoh kondisi:

Device CONNECTED
      ↓
Koneksi terputus
      ↓
Device reconnect
      ↓
CONNECTED
`

Kondisi tersebut berbeda dengan:

Device CONNECTED
      ↓
Session logout
      ↓
Pairing ulang
      ↓
CONNECTED

Jika device hanya mengalami disconnect sementara, pairing ulang terus-menerus justru tidak menyelesaikan akar masalah.

1. Periksa Status Device

Langkah pertama adalah melihat status device saat masalah terjadi.

Catat status sebelum dan sesudah logout. Informasi ini membantu menentukan apakah masalah berasal dari koneksi atau sesi.

Contoh alur:

CONNECTED
↓
DISCONNECTED
↓
CONNECTED

berbeda dengan:

CONNECTED
↓
LOGGED OUT

Whapi menyediakan status koneksi device melalui API. Status tersebut dapat digunakan aplikasi untuk mengetahui kondisi device sebelum menjalankan proses pengiriman pesan.

Gunakan status device sebagai sumber data utama, bukan hanya mengandalkan error dari request pengiriman.

2. Periksa Kapan Device Logout

Waktu terjadinya logout dapat memberikan petunjuk penting.

Catat:

  • waktu device mulai terputus,
  • waktu device logout,
  • aktivitas terakhir sebelum logout,
  • jumlah pesan yang sedang dikirim,
  • dan apakah server mengalami restart.

Misalnya:

09:00  Device CONNECTED
09:15  Pengiriman pesan normal
09:30  Server restart
09:31  Device terputus
09:35  Device logout

Jika pola tersebut terjadi berulang, pemeriksaan sebaiknya diarahkan ke server dan proses penyimpanan sesi.

Sebaliknya, jika logout terjadi tanpa restart server, periksa sesi device dan aktivitas koneksi WhatsApp.

3. Pastikan Server Tidak Sering Restart

Server yang sering restart dapat mengganggu proses yang mempertahankan sesi device.

Periksa:

uptime

Kemudian periksa proses aplikasi:

systemctl status nama-service

Jika aplikasi dijalankan menggunakan PM2:

pm2 status
pm2 logs

Cari pola seperti:

process exited
process restarted
out of memory
uncaught exception
connection closed

Jika proses API atau gateway berhenti, device dapat kehilangan koneksi dengan server.

Server yang stabil menjadi bagian penting dalam menjaga koneksi device tetap berjalan.

4. Periksa Penggunaan RAM

Penggunaan RAM yang terlalu tinggi dapat menyebabkan proses aplikasi dihentikan atau restart.

Periksa penggunaan memori:

free -h

Untuk melihat proses yang menggunakan RAM paling besar:

top

atau:

htop

Jika penggunaan RAM terus mendekati kapasitas maksimum, periksa:

  • jumlah device aktif,
  • jumlah proses,
  • ukuran queue,
  • cache,
  • koneksi yang tidak ditutup,
  • dan aplikasi lain yang berjalan pada server.

Contoh kondisi:

RAM server
↓
90%
↓
95%
↓
100%
↓
Process killed
↓
Device disconnected

Dalam kondisi seperti ini, menambahkan QR baru bukan solusi utama. Kapasitas dan proses server perlu diperiksa terlebih dahulu.

5. Pastikan Session Tidak Hilang Saat Restart

Aplikasi yang membutuhkan session device harus menyimpan data sesi secara persisten.

Jika session hanya berada di memory:

Server hidup
↓
Session tersedia
↓
Server restart
↓
Memory kosong
↓
Session hilang

Device dapat membutuhkan proses pairing kembali.

Penyimpanan session sebaiknya menggunakan storage yang tetap tersedia setelah proses restart.

Contoh struktur:

/server
  /sessions
    /device-001
    /device-002
    /device-003

Lokasi dan metode penyimpanan harus disesuaikan dengan library dan arsitektur yang digunakan.

Jangan menghapus folder session setiap kali aplikasi melakukan deploy atau restart.

6. Jangan Menghapus Session Saat Deploy

Salah satu kesalahan yang sering terjadi pada deployment adalah membuat directory aplikasi baru lalu menghapus seluruh data aplikasi lama.

Contohnya:

Deploy
↓
Container dibuat ulang
↓
Session ikut terhapus
↓
Device kehilangan session
↓
Pairing ulang

Jika aplikasi berjalan di Docker, data session sebaiknya berada pada volume persisten.

Contoh konsep:

volumes:
  - whatsapp_sessions:/app/sessions

Dengan storage persisten, session tidak otomatis hilang ketika container dibuat ulang.

Konfigurasi sebenarnya harus disesuaikan dengan lokasi penyimpanan session pada aplikasi.

7. Periksa Container atau Service

Jika WhatsApp API berjalan menggunakan Docker, periksa apakah container sering dibuat ulang.

Gunakan:

docker ps

Kemudian:

docker ps -a

Periksa log:

docker logs nama-container

Cari kejadian seperti:

Exited
Restarting
OOMKilled

Jika container terus restart, masalah device kemungkinan merupakan efek dari masalah service.

Urutannya dapat terlihat seperti:

Container crash
↓
Process berhenti
↓
Connection terputus
↓
Device offline

Perbaiki stabilitas container terlebih dahulu sebelum melakukan pairing ulang.

8. Periksa Koneksi Internet Server

Device yang terhubung melalui server membutuhkan koneksi internet yang stabil.

Periksa koneksi keluar dari server:

ping 1.1.1.1

Periksa DNS:

nslookup google.com

Jika koneksi sering mengalami packet loss atau DNS bermasalah, koneksi device dapat ikut terganggu.

Masalah jaringan juga dapat terjadi karena:

  • firewall,
  • proxy,
  • routing,
  • provider server,
  • atau aturan outbound connection.

Jangan hanya memeriksa apakah server masih dapat membuka website. Aplikasi membutuhkan koneksi yang stabil ke layanan yang digunakan selama proses komunikasi.

9. Periksa Proxy Jika Digunakan

Proxy dapat membantu kebutuhan koneksi tertentu, tetapi konfigurasi yang tidak stabil juga dapat menyebabkan koneksi bermasalah.

Jika device menggunakan proxy, periksa:

  • alamat proxy,
  • port,
  • autentikasi,
  • koneksi proxy,
  • timeout,
  • dan apakah proxy masih aktif.

Lakukan pengujian dengan mencatat waktu ketika proxy gagal dan waktu device terputus.

Jika hanya device tertentu yang sering logout sementara device lain normal, periksa konfigurasi device tersebut secara khusus.

10. Periksa Apakah Nomor Masih Aktif di WhatsApp

Sesi device dapat bermasalah jika nomor WhatsApp mengalami perubahan kondisi.

Periksa apakah nomor:

  • masih aktif,
  • masih dapat digunakan,
  • tidak logout dari perangkat lain,
  • dan tidak mengalami perubahan akun.

Jika nomor mengalami logout dari sisi WhatsApp, server tidak dapat mempertahankan sesi yang sudah tidak valid.

Karena itu, masalah session tidak selalu berasal dari aplikasi API.

11. Hindari Pairing Ulang Tanpa Pemeriksaan

Ketika device logout, tindakan yang paling mudah memang melakukan scan QR kembali.

Namun jika masalah terjadi setiap beberapa jam atau setiap hari, pairing ulang hanya mengembalikan device ke kondisi semula.

Contoh:

Logout
↓
Scan QR
↓
CONNECTED
↓
Beberapa jam kemudian
↓
Logout lagi

Jika pola tersebut berulang, cari penyebabnya.

Periksa:

  1. stabilitas server,
  2. session storage,
  3. koneksi jaringan,
  4. restart process,
  5. penggunaan RAM,
  6. proxy,
  7. status nomor.

12. Pantau Perubahan Status melalui Webhook

Webhook dapat digunakan untuk mencatat perubahan status device secara otomatis.

Contoh receiver:

app.post('/webhook/whapi', (req, res) => {
    const payload = req.body;

    console.log('Webhook event:', payload);

    // Simpan perubahan status device

    res.sendStatus(200);
});

Simpan minimal:

device_id
event
status
timestamp

Contoh data:

{
  "device_id": "device-001",
  "status": "CONNECTED",
  "timestamp": "2026-10-04T17:30:00+07:00"
}

Dengan riwayat tersebut, dashboard dapat menunjukkan pola koneksi device.

Misalnya:

10:00 CONNECTED
10:20 DISCONNECTED
10:21 CONNECTED
11:05 DISCONNECTED
11:06 CONNECTED
12:40 LOGGED OUT

Data seperti ini jauh lebih berguna daripada hanya mengetahui bahwa device sedang offline.

13. Bedakan Logout Satu Device dan Semua Device

Jika hanya satu device yang mengalami masalah, pemeriksaan dapat difokuskan pada konfigurasi device tersebut.

Jika banyak device logout pada waktu yang hampir sama, kemungkinan terdapat masalah yang lebih luas.

Contoh:

Device 01 → logout
Device 02 → normal
Device 03 → normal

Kemungkinan masalah berada pada device 01.

Sedangkan:

Device 01 → logout
Device 02 → logout
Device 03 → logout

pada waktu yang sama lebih layak diperiksa dari sisi:

  • server,
  • service,
  • database/session storage,
  • deployment,
  • jaringan,
  • atau konfigurasi global.

Pola ini dapat mempercepat proses troubleshooting.

14. Periksa Log Sebelum dan Sesudah Logout

Log adalah salah satu sumber informasi paling penting ketika device sering logout.

Cari event yang muncul beberapa detik atau menit sebelum logout.

Contoh:

17:40:01 Device connected
17:42:18 Request sent
17:42:20 Connection warning
17:42:25 Connection closed
17:42:26 Session invalid
17:42:27 Device logged out

Dari urutan tersebut dapat diketahui bahwa logout merupakan hasil dari masalah sebelumnya.

Jangan hanya mengambil log pada saat:

Device logged out

Periksa beberapa menit sebelum kejadian.

15. Gunakan Restart Otomatis dengan Benar

Process manager seperti PM2 atau systemd dapat digunakan untuk menjaga aplikasi tetap berjalan.

Contoh PM2:

pm2 start app.js --name whatsapp-api
pm2 save

Namun restart otomatis bukan solusi untuk semua jenis logout.

Jika aplikasi crash karena RAM penuh, restart hanya mengulang kondisi yang sama:

Crash
↓
Restart
↓
CONNECTED
↓
RAM penuh
↓
Crash lagi

Cari penyebab crash terlebih dahulu.

16. Periksa Deploy dan Update Aplikasi

Logout yang mulai terjadi setelah deployment atau update perlu diperiksa berdasarkan perubahan terakhir.

Catat:

Versi sebelumnya
↓
Deployment
↓
Versi baru
↓
Device mulai logout

Bandingkan:

  • konfigurasi session,
  • environment variable,
  • storage,
  • dependency,
  • proxy,
  • process manager,
  • dan konfigurasi container.

Jika masalah mulai muncul setelah perubahan tertentu, perubahan tersebut menjadi titik pemeriksaan utama.

17. Buat Monitoring Device

Untuk sistem dengan banyak device, pemeriksaan manual tidak efisien.

Buat monitoring sederhana yang mencatat:

Device
Status
Last Connected
Last Disconnected
Last Logout
Last Error

Contoh:

Device Status Last Connected Last Disconnect
device-001 CONNECTED 17:40 16:12
device-002 CONNECTED 17:42 15:20
device-003 DISCONNECTED 13:10 17:30

Data ini dapat digunakan untuk mendeteksi device yang memiliki frekuensi disconnect lebih tinggi dibandingkan device lain.

18. Checklist Mengatasi Device WhatsApp Sering Logout

Gunakan checklist berikut saat device mengalami logout berulang:

  • [ ] Periksa status device
  • [ ] Bedakan disconnect dan logout
  • [ ] Periksa waktu terjadinya logout
  • [ ] Periksa apakah server restart
  • [ ] Periksa penggunaan RAM
  • [ ] Periksa proses aplikasi
  • [ ] Pastikan session tersimpan secara persisten
  • [ ] Pastikan deploy tidak menghapus session
  • [ ] Periksa Docker jika digunakan
  • [ ] Periksa koneksi internet server
  • [ ] Periksa proxy jika digunakan
  • [ ] Periksa status nomor WhatsApp
  • [ ] Periksa webhook perubahan status
  • [ ] Periksa log sebelum logout
  • [ ] Bandingkan dengan device lain
  • [ ] Hindari pairing ulang berulang kali tanpa mencari penyebab

Kesimpulan

Device WhatsApp yang sering logout tidak selalu disebabkan oleh API pengiriman pesan. Masalah dapat berasal dari session yang hilang, server restart, RAM penuh, container berhenti, koneksi jaringan, proxy, atau kondisi nomor WhatsApp.

Langkah pertama adalah membedakan disconnect dengan logout. Setelah itu, periksa status device, log server, session storage, jaringan, dan perubahan yang terjadi sebelum logout.

Jika device hanya terputus sementara, fokus pada kestabilan koneksi dan service. Jika session benar-benar hilang, periksa penyimpanan session dan proses pairing.

Untuk sistem dengan banyak device, simpan riwayat perubahan status melalui webhook agar setiap kejadian logout dapat dilacak berdasarkan waktu dan device.

Scroll to Top