diff --git a/changelog/4201.changed.md b/changelog/4201.changed.md new file mode 100644 index 000000000..4143e9c66 --- /dev/null +++ b/changelog/4201.changed.md @@ -0,0 +1 @@ +- `WebsocketService` reconnection errors are now non-fatal. When a websocket service exhausts its reconnection attempts (either via exponential backoff or quick failure detection), it emits a non-fatal `ErrorFrame` instead of a fatal one. This allows application-level failover (e.g. `ServiceSwitcher`) to handle the failure instead of killing the entire pipeline. diff --git a/changelog/4201.fixed.md b/changelog/4201.fixed.md new file mode 100644 index 000000000..fb44f7344 --- /dev/null +++ b/changelog/4201.fixed.md @@ -0,0 +1 @@ +- Fixed `WebsocketService` entering an infinite reconnection loop when a server accepts the WebSocket handshake but immediately closes the connection (e.g. invalid API key, close code 1008). The service now detects connections that fail repeatedly within seconds of being established and stops retrying after 3 consecutive quick failures.