From 23ef48647fc0f5b902e0de8864e203d734fb1a3f Mon Sep 17 00:00:00 2001 From: Deep Koluguri Date: Sat, 27 Jun 2026 17:38:53 -0400 Subject: [PATCH] Add watchdog to prevent Chromium hanging --- whatsapp-gateway/server.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/whatsapp-gateway/server.js b/whatsapp-gateway/server.js index c26b5f8..0e1fb8c 100644 --- a/whatsapp-gateway/server.js +++ b/whatsapp-gateway/server.js @@ -390,4 +390,16 @@ server.listen(PORT, '0.0.0.0', () => { }); console.log('[WhatsApp Bot] Initializing client...'); + +// Watchdog Timer to prevent infinite Chromium loops (126% CPU bug) +const WATCHDOG_TIMEOUT_MS = 90000; // 90 seconds +let watchdog = setTimeout(() => { + console.error(`[WhatsApp Bot] 🚨 Watchdog triggered! Client failed to reach 'qr' or 'ready' state within ${WATCHDOG_TIMEOUT_MS / 1000} seconds. Exiting to allow Kubernetes restart.`); + process.exit(1); +}, WATCHDOG_TIMEOUT_MS); + +// Clear the watchdog if it successfully generates a QR code or becomes ready +client.on('qr', () => { clearTimeout(watchdog); }); +client.on('ready', () => { clearTimeout(watchdog); }); + client.initialize();