From 395e05343d6b2b8f701c08ebf7da19e93f652933 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Wed, 15 Jul 2026 02:29:10 +0200 Subject: [PATCH] gateway: handle websocket.disconnect in receive loop Stops the RuntimeError spam ('Cannot call receive once a disconnect message has been received') every time the device's watchdog reboots. Redeployed to the tatlock-ui stack. Co-Authored-By: Claude Fable 5 --- gateway/src/desklock_gateway/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gateway/src/desklock_gateway/main.py b/gateway/src/desklock_gateway/main.py index 1c4169d..fe0e1d3 100644 --- a/gateway/src/desklock_gateway/main.py +++ b/gateway/src/desklock_gateway/main.py @@ -54,6 +54,8 @@ async def voice(ws: WebSocket) -> None: try: while True: message = await ws.receive() + if message["type"] == "websocket.disconnect": + raise WebSocketDisconnect(message.get("code", 1000)) device["last_seen"] = _now() if "bytes" in message and message["bytes"] is not None: if recording: