From 4709ecc771adc3c113a3dc403d86e6324c523539 Mon Sep 17 00:00:00 2001 From: MarekWo Date: Tue, 27 Jan 2026 15:50:34 +0100 Subject: [PATCH] fix: Suppress werkzeug WebSocket handshake errors in logs The werkzeug development server produces "write() before start_response" errors during WebSocket upgrade. These are cosmetic - the connection still works via Socket.IO retry. Added a logging filter to suppress these errors for cleaner logs. Co-Authored-By: Claude Opus 4.5 --- app/main.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/main.py b/app/main.py index eb23ae3..07cc994 100644 --- a/app/main.py +++ b/app/main.py @@ -32,6 +32,25 @@ logging.basicConfig( logger = logging.getLogger(__name__) + +# Filter to suppress known werkzeug WebSocket errors (cosmetic issue with dev server) +class WerkzeugWebSocketFilter(logging.Filter): + def filter(self, record): + # Suppress "write() before start_response" errors during WebSocket upgrade + if record.levelno == logging.ERROR: + # Check message + if 'write() before start_response' in str(record.msg): + return False + # Check exception info (traceback) + if record.exc_info and record.exc_info[1]: + if 'write() before start_response' in str(record.exc_info[1]): + return False + return True + + +# Apply filter to werkzeug logger +logging.getLogger('werkzeug').addFilter(WerkzeugWebSocketFilter()) + # Initialize SocketIO globally socketio = SocketIO()