@@ -123,6 +123,8 @@ export async function monitorWebChannel(
123123 const maxMediaBytes = resolveWhatsAppMediaMaxBytes ( account ) ;
124124 const heartbeatSeconds = resolveHeartbeatSeconds ( cfg , tuning . heartbeatSeconds ) ;
125125 const reconnectPolicy = resolveReconnectPolicy ( cfg , tuning . reconnect ) ;
126+ const messageTimeoutMs = resolveMessageTimeoutMs ( cfg , tuning . messageTimeoutMs ) ;
127+ const messageTimeoutMinutes = Math . floor ( messageTimeoutMs / 60000 ) ;
126128 const baseMentionConfig = buildMentionConfig ( cfg ) ;
127129 const groupHistoryLimit =
128130 cfg . channels ?. whatsapp ?. accounts ?. [ tuning . accountId ?? "" ] ?. historyLimit ??
@@ -192,7 +194,7 @@ export async function monitorWebChannel(
192194
193195 // Watchdog to detect stuck message processing (e.g., event emitter died).
194196 // Tuning overrides are test-oriented; production defaults remain unchanged.
195- const MESSAGE_TIMEOUT_MS = resolveMessageTimeoutMs ( cfg , tuning . messageTimeoutMs ) ;
197+ const MESSAGE_TIMEOUT_MS = messageTimeoutMs ;
196198 const WATCHDOG_CHECK_MS = tuning . watchdogCheckMs ?? 60 * 1000 ; // 1m default
197199
198200 const onMessage = createWebOnMessageHandler ( {
@@ -329,13 +331,16 @@ export async function monitorWebChannel(
329331 lastInboundAt : active . lastInboundAt ,
330332 authAgeMs,
331333 uptimeMs : Date . now ( ) - active . startedAt ,
332- ...( minutesSinceLastMessage !== null && minutesSinceLastMessage > 30
334+ ...( minutesSinceLastMessage !== null && minutesSinceLastMessage > messageTimeoutMinutes
333335 ? { minutesSinceLastMessage }
334336 : { } ) ,
335337 } ;
336338
337- if ( minutesSinceLastMessage && minutesSinceLastMessage > 30 ) {
338- heartbeatLogger . warn ( logData , "⚠️ web gateway heartbeat - no messages in 30+ minutes" ) ;
339+ if ( minutesSinceLastMessage && minutesSinceLastMessage > messageTimeoutMinutes ) {
340+ heartbeatLogger . warn (
341+ logData ,
342+ `⚠️ web gateway heartbeat - no messages in ${ messageTimeoutMinutes } + minutes` ,
343+ ) ;
339344 } else {
340345 heartbeatLogger . info ( logData , "web gateway heartbeat" ) ;
341346 }
0 commit comments