Hello,

We upgraded to 3.3.9 yesterday and started getting reports from users that they 
couldn't connect to our chat, which uses websockets. I've narrowed it down to 
ws connections made over h2. haproxy reports this when the browser attempts a 
ws upgrade:

[09/May/2026:11:54:09.568] main~ main/<NOSRV> -1/-1/-1/-1/477 0 0 - - PR-- 
2/2/0/0/0 0/0 "<BADREQ>" 0/0000000000000000/0/0/0 
chat.domain.com/TLSv1.3/TLS_AES_128_GCM_SHA256 serverid="-" alpn=h2

If I disable h2, the connection succeeds both over http1.1 and h3.

Here is the relevant bind config:

frontend main
  bind ip:80 tfo
  bind ip:443 ssl crt /etc/haproxy/certs alpn h2,http/1.1 tfo
  bind quic4@ip:443 ssl crt /etc/haproxy/certs alpn h3

Here are the headers from the websocket requests that fail over h2:

GET /ws undefined
Host: chat.domain.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:150.0) 
Gecko/20100101 Firefox/150.0
Accept: */*
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br, zstd
Sec-WebSocket-Version: 13
Origin: https://chat.domain.com
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: xxx
Connection: Upgrade
Cookie: xxx
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: websocket
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache

I've temporarily disabled h2 for now.

Let me know if I can provide anything else.

Bren


Reply via email to