Handle abrupt WebSocket disconnect (e.g. Safari tab close)

Catch ConnectionClosed in User.send() and handler_recv() so that an
unclean client disconnect no longer produces "Task exception was never
retrieved" / "connection handler failed" log noise.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SH2D4LRuCnhLSzoYerAfJX
This commit is contained in:
2026-06-28 15:34:53 +02:00
co-authored by Claude Sonnet 4.6
parent d44601fee1
commit 0f31cc41cc
2 changed files with 17 additions and 9 deletions
+5 -1
View File
@@ -1,5 +1,6 @@
import dpath.util as dp
import json
import websockets.exceptions
def update(d, u, only_existing=True):
@@ -26,7 +27,10 @@ class User:
msg = dp.search(data, path)
result.update(msg)
if len(result) != 0:
await self.socket.send(json.dumps(result))
try:
await self.socket.send(json.dumps(result))
except websockets.exceptions.ConnectionClosed:
pass
async def process(self, data):
handled = True