Hysteria2 VPN connections stalled after upload speed tests; a 37-line fix followed

The developers of Colitu, a VPN with open-source apps, use the QUIC-based Hysteria2 transport, which their clients prefer on many networks. Their apps run health checks and switch to a TCP backup when the primary transport stops responding, but Hysteria2 kept being declared dead during speed tests. Captured traffic showed the QUIC connection was still alive while no new stream data was sent, pointing away from the network and toward flow control. Tests ruled out ISP shaping, congestion control, a QUIC mimicry mode, and stream limits as causes. Reproduction on a loopback setup showed the stall occurs when the upload's destination stops reading while its connection remains open, consistent with QUIC's per-stream and per-connection limits on unread data.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in