Skip to content

Merge branch 'main' of https://github.com/envoyproxy/envoy into aa/al…

f15563a
Select commit
Loading
Failed to load commit list.
Open

upstream: force h1 for websocket upgrades when allow_connect is false on auto_config clusters #44317

Merge branch 'main' of https://github.com/envoyproxy/envoy into aa/al…
f15563a
Select commit
Loading
Failed to load commit list.
CI (Envoy) / Mobile/iOS succeeded Apr 8, 2026 in 6m 10s

Mobile/iOS (success)

Check has finished

Details

Check run finished (success ✔️)

The check run can be viewed here:

Mobile/iOS (pr/44317/main@f15563a)

Check started by

Request (pr/44317/main@f15563a)

AdamEAnderson @AdamEAnderson f15563a #44317 merge main@7367e6c

upstream: force h1 for websocket upgrades when allow_connect is false on auto_config clusters

Commit Message: upstream: force h1 for websocket upgrades when allow_connect is false on auto_config clusters

Additional Description:

When a cluster uses http_protocol_options auto_config (for ALPN-based codec selection)
and the upstream supports both h1 and h2, websocket upgrade requests that originated downstream
as h1 upgrades are proxied to the upstream as HTTP/2 connections over extended CONNECT even when the
http2_protocol_options allow_connect flag is disabled.

These upgrades should be proxied as-is to the upstream as h1 websocket upgrade requests
when connect is flagged as supported by the upstream. This matches the docs for
allow_connect: Allows proxying Websocket and other upgrades over H2 connect.

This patch makes h1 websocket upgrades always use the h1 pool with ALPN-based pool selection
when allow_connect is not enabled. Non-ALPN-based clusters, clusters with allow_connect enabled,
non-websocket-upgrade-requests, etc are not changed.

Risk Level: medium: chance of breaking existing users who depend on these off-spec upgrades
Testing: included
Docs Changes: n/a
Release Notes: included
Platform Specific Features: n/a

(claude code assisted with parts of the changes)

Environment

Request variables

Key Value
ref 3a77ebb
sha f15563a
pr 44317
base-sha 7367e6c
actor AdamEAnderson @AdamEAnderson
message upstream: force h1 for websocket upgrades when allow_connect is false on auto_config clusters...
started 1775667491.858319
target-branch main
trusted false
Build image

Container image/s (as used in this CI run)

Key Value
default docker.io/envoyproxy/envoy-build:86873047235e9b8232df989a5999b9bebf9db69c
mobile docker.io/envoyproxy/envoy-build:mobile-86873047235e9b8232df989a5999b9bebf9db69c
Version

Envoy version (as used in this CI run)

Key Value
major 1
minor 38
patch 0
dev true