ExpressHAProxyNGINX

Load balancer without sticky sessions causes repeated handshake resets

critical
availabilityUpdated Sep 21, 2025(via Exa)
How to detect:

Load balancers without session affinity (sticky sessions) cause Socket.io clients to oscillate between backend servers, triggering repeated handshake resets and connection failures. Enabling session persistence reduced errors to sub-1% in documented cases.

Recommended action:

Enable sticky sessions or session affinity on load balancers handling WebSocket traffic. Configure session persistence based on client IP or cookie. For HAProxy use 'balance source' or 'stick-table'. For Nginx use 'ip_hash' or 'hash' directive. Verify session mapping consistency across requests.