fix: timeout (30s) op alle bridge-requests; stil hangen werd nooit gerapporteerd (4037/4041-klas see 2026-10-11)

This commit is contained in:
Eddy de Vink 2026-10-11 19:00:10 +02:00
commit b6b13d4410

View file

@ -5,6 +5,11 @@ const API_BASE = process.env.WHATSAPP_API_ENDPOINT
const SESSION = process.env.WHATSAPP_SESSION
const MAX_RETRIES = 3
const RETRY_DELAY_MS = 1000
// Zonder timeout hangt een request naar een (tijdelijk) vastgelopen bridge voor
// eeuwig: geen retry, geen fout, geen admin-melding, webhook reageert nooit —
// precies het stille-falen-patroon van 2026-10-11 (dienst 4041). LAN-media-sends
// duren <1s; 30s per poging is ruim.
const REQUEST_TIMEOUT_MS = 30000
// Laat de bridge de juiste mimetype gebruiken bij elke beeld-extensie (png/jpg/jpeg
// vooraf ondersteund; onbekende extensies vallen terug op image/png).
@ -49,7 +54,7 @@ async function sendTextMessage(chatId, text) {
chatId,
contentType: 'string',
content: text
})
}, { timeout: REQUEST_TIMEOUT_MS })
return response.data
}, `sendTextMessage to ${chatId}`)
}
@ -67,7 +72,7 @@ async function sendImageMessage(chatId, filePath, filename) {
data: base64Data,
filename: filename
}
})
}, { timeout: REQUEST_TIMEOUT_MS })
return response.data
}, `sendImageMessage ${filename} to ${chatId}`)
}
@ -95,7 +100,7 @@ async function notifyAdmin(errorText) {
async function sendChatSeen(chatId) {
const url = `${API_BASE}/client/sendSeen/${SESSION}`
const response = await axios.post(url, { chatId })
const response = await axios.post(url, { chatId }, { timeout: REQUEST_TIMEOUT_MS })
return response.data
}