From d7446a76925e80e1485264508f05bb60a22fc5ab Mon Sep 17 00:00:00 2001 From: fireph <443370+fireph@users.noreply.github.com> Date: Thu, 28 May 2026 12:53:47 -0700 Subject: [PATCH] try/except ws receive/send so that reset error doesn't crash the app --- websocket.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/websocket.py b/websocket.py index 7bac405..ed55358 100644 --- a/websocket.py +++ b/websocket.py @@ -247,7 +247,10 @@ class Websocket: ws = self._ws.get_with_default(None) assert ws is not None while True: - raw_message: aiohttp.WSMessage = await ws.receive(timeout=timeout) + try: + raw_message: aiohttp.WSMessage = await ws.receive(timeout=timeout) + except aiohttp.ClientConnectionResetError: + raise WebsocketClosed(received=False) ws_logger.debug(f"Websocket[{self._idx}] received: {raw_message}") if raw_message.type is WSMsgType.TEXT: message: JsonType = json.loads(raw_message.data) @@ -323,7 +326,10 @@ class Websocket: assert ws is not None if message["type"] != "PING": message["nonce"] = create_nonce(CHARS_ASCII, 30) - await ws.send_json(message, dumps=json_minify) + try: + await ws.send_json(message, dumps=json_minify) + except aiohttp.ClientConnectionResetError: + raise WebsocketClosed(received=False) ws_logger.debug(f"Websocket[{self._idx}] sent: {message}")