From 6c9ec24fb99e52f3a83d07ddd0b09b4cfd114f55 Mon Sep 17 00:00:00 2001 From: Pantelis Vratsalis Date: Thu, 23 Mar 2023 13:46:56 +0200 Subject: [PATCH] [MM-50002] catch and log exceptions from missed message listeners --- webapp/platform/client/src/websocket.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/webapp/platform/client/src/websocket.ts b/webapp/platform/client/src/websocket.ts index c88379ec37..b026891933 100644 --- a/webapp/platform/client/src/websocket.ts +++ b/webapp/platform/client/src/websocket.ts @@ -189,9 +189,16 @@ export default class WebSocketClient { console.log('long timeout, or server restart, or sequence number is not found.'); //eslint-disable-line no-console this.missedEventCallback?.(); - this.missedMessageListeners.forEach((listener) => listener()); - - this.serverSequence = 0; + + for (const listener of this.missedMessageListeners) { + try { + listener(); + } catch (e) { + console.log(`missed message listener "${listener.name}" failed: ${e}`); // eslint-disable-line no-console + } + } + + this.serverSequence = 0; } // If it's a fresh connection, we have to set the connectionId regardless.