Debug HTTP

WebSocket Probe — Does the Upgrade Handshake Complete

A WebSocket connection begins as an ordinary HTTP request carrying an upgrade header, and the server must respond correctly for the connection to be established. This performs that handshake and reports what happened — which is the part that fails, and the part that is hardest to see from application code.

When it helps

Because real-time features fail in a way that is easy to misattribute. The application reports a disconnection and reconnects, so the symptom is intermittent flakiness rather than a clear error, and the investigation starts in the client library. Very often the actual cause is infrastructure: a proxy or load balancer that does not forward upgrade headers, or an idle timeout closing connections that are working exactly as designed but quiet.

Worth running automatically

WebSocket paths break during infrastructure changes and stay broken quietly, because a client that reconnects makes a total failure look like poor connectivity. If a proxy update stops forwarding upgrades, every user silently falls back to polling — or loses the feature — while your monitoring shows a healthy site. A scheduled handshake check is the only thing that distinguishes "working" from "reconnecting forever", and the two are indistinguishable from the server's logs.

What you get out of it

Isolates the handshake from the application, which is where real-time failures usually live. Monitored, it catches the proxy change that turns a live feature into a permanent reconnect loop.

Also in Debug HTTP