@@ -65,7 +65,8 @@ async def broadcast_live(self, data: dict) -> None:
6565 for ws in self ._live_connections :
6666 try :
6767 await ws .send_text (message )
68- except Exception :
68+ except Exception as e :
69+ logger .debug ("Live broadcast failed; dropping client: %r" , e )
6970 disconnected .append (ws )
7071 for ws in disconnected :
7172 self .disconnect_live (ws )
@@ -79,7 +80,8 @@ async def broadcast_alert(self, data: dict) -> None:
7980 for ws in self ._alert_connections :
8081 try :
8182 await ws .send_text (message )
82- except Exception :
83+ except Exception as e :
84+ logger .debug ("Alert broadcast failed; dropping client: %r" , e )
8385 disconnected .append (ws )
8486 for ws in disconnected :
8587 self .disconnect_alert (ws )
@@ -227,6 +229,10 @@ async def websocket_live(websocket: WebSocket):
227229 # Keep connection alive; data is pushed by the engine
228230 await websocket .receive_text ()
229231 except WebSocketDisconnect :
232+ pass
233+ except Exception as e :
234+ logger .debug ("Live WebSocket error: %r" , e )
235+ finally :
230236 ws_manager .disconnect_live (websocket )
231237
232238 @app .websocket ("/ws/alerts" )
@@ -237,6 +243,10 @@ async def websocket_alerts(websocket: WebSocket):
237243 while True :
238244 await websocket .receive_text ()
239245 except WebSocketDisconnect :
246+ pass
247+ except Exception as e :
248+ logger .debug ("Alert WebSocket error: %r" , e )
249+ finally :
240250 ws_manager .disconnect_alert (websocket )
241251
242252 return app
0 commit comments