From d4cd5805551e354481ad08459b30b736dd06715f Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Wed, 15 Jul 2026 16:37:23 +1200 Subject: [PATCH] Detect timeouts as server down --- src/d2m/discord-packets.js | 5 +++++ src/m2d/event-dispatcher.js | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/d2m/discord-packets.js b/src/d2m/discord-packets.js index b17ad4e..988f981 100644 --- a/src/d2m/discord-packets.js +++ b/src/d2m/discord-packets.js @@ -181,9 +181,14 @@ async function onPacket(client, message, listen) { // Event dispatcher for OOYE bridge operations if (listen === "full" && message.t) { const alwaysRealTimeEvents = ["PRESENCE_UPDATE"] + const optionalEvents = ["TYPING_START"] if (alwaysRealTimeEvents.includes(message.t) || homeserverStatus.homeserverStatus.isRealTime()) { + // real time dispatchPacketToBridge(client, message) + } else if (optionalEvents.includes(message.t)) { + // when not real time, skip optional events } else { + // queue required events homeserverStatus.homeserverStatus.queuePacket(message) } } diff --git a/src/m2d/event-dispatcher.js b/src/m2d/event-dispatcher.js index 129fca5..0ca36a6 100644 --- a/src/m2d/event-dispatcher.js +++ b/src/m2d/event-dispatcher.js @@ -171,7 +171,10 @@ async function sendError(roomID, source, type, e, payload) { } }) } catch (e) { - if (e instanceof mreq.MatrixServerError && [502, 503].includes(e.httpStatus) && e.errcode === "CX_SERVER_ERROR") { + if ( + e.toString().includes("fetch failed") + || (e instanceof mreq.MatrixServerError && [502, 503].includes(e.httpStatus) && e.errcode === "CX_SERVER_ERROR") + ) { // Matrix homeserver is down (reverse proxy indicated failure) homeserverStatus.homeserverStatus.setErrorWithPacket(payload) }