gabriel / muse public
fix dev
AI Agent gabriel · 152 days ago · Apr 22, 2026 · Diff

fix: use http2=False in R2 PUT client to eliminate ALPN h2 extension

Wall 4: httpx(http2=True) sends ALPN [h2, http/1.1] to R2. R2 is HTTP/1.1 only and some backends have a bug where the H2 ALPN extension corrupts TLS state after N connections → SSLV3_ALERT_BAD_RECORD_MAC.

http2=False eliminates the ALPN h2 extension entirely. R2 only speaks HTTP/1.1 so this is correct behavior regardless.

TDD: TestT18R2NoH2ALPN — 18/18 pass in test_presign_upload.py.

sha256:efbeba6ab0699a5a4072f74646b20d803680cdacfa0e97e524ac0b0ecf37faf5 sha
+3 ~4 symbols
sha256:1a2360907fb87a23c857eeea82ee898cb35346f3fb8233cb06f9757a49b0961a snapshot
+3
symbols added
~4
symbols modified
0
dead code introduced
Semantic Changes 7 symbols
~ muse/cli/commands/push.py .py 1 symbol modified
~ tests/test_presign_upload.py .py 2 symbols added
+ TestT18R2NoH2ALPN class class TestT18R2NoH2ALPN L522–541
+ test_make_r2_client_uses_http1_only method method test_make_r2_client_uses_http1_only L531–541
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:efbeba6ab0699a5a4072f74646b20d803680cdacfa0e97e524ac0b0ecf37faf5 --body "your comment"