[BUG] Claude Desktop (Linux): no graceful fallback behind TLS-intercepting corporate proxy — QUIC hard-fail on launch, Design tab ERR_HTTP2_PROTOCOL_ERROR

Resolved 💬 2 comments Opened Jul 2, 2026 by HJLeee Closed Jul 5, 2026

Environment

  • Claude Desktop 1.17377.2 (Electron 42.5.1), Ubuntu 24.04.4 LTS
  • Corporate network: explicit HTTP proxy with TLS interception (MITM CA installed in NSS db), QUIC/UDP 443 blocked

Summary

Behind a common enterprise network setup (explicit HTTP proxy + TLS interception + UDP 443 blocked), Claude Desktop fails at multiple layers without falling back or surfacing an actionable error:

  1. Launch: "Couldn't connect to Claude — Unknown error". The app ignores http_proxy/https_proxy environment variables and attempts a direct QUIC connection, which dies with net::ERR_QUIC_PROTOCOL_ERROR. Chromium does not fall back to HTTP/2/TCP for the health-check fetch (SimpleURLLoaderWrapper in main.log), so the app is unusable until launched with --proxy-server=... --disable-quic.
  2. Chat → Design tab: "Something went wrong". The Design surface's module bundle (https://claude.ai/design/assets/v1/platform-<hash>.js) repeatedly fails with net::ERR_HTTP2_PROTOCOL_ERROR (12 occurrences in one netlog session) on the app's long-lived multiplexed h2 connection through the intercepting proxy. Fetching the same URL over a fresh connection succeeds, so the proxy's h2 handling is at fault — but the app keeps retrying on the same poisoned connection and the UI only shows a generic error. Workaround: add --disable-http2.

Expected behavior

  • Respect standard proxy environment variables (or system proxy settings) on Linux.
  • Fall back QUIC → h2 → http/1.1 on protocol errors, as browsers do.
  • Surface the underlying net:: error code in the UI instead of "Unknown error" / "Something went wrong", so enterprise users can self-diagnose.

Steps to reproduce

  1. Network with explicit proxy http://<proxy>:8080, TLS interception, UDP 443 blocked.
  2. Launch Claude Desktop with no flags → "Couldn't connect to Claude — Unknown error" (ERR_QUIC_PROTOCOL_ERROR in ~/.config/Claude/logs/main.log).
  3. Relaunch with --proxy-server=http://<proxy>:8080 --disable-quic → app works, log in succeeds.
  4. Open Chat → Design → "Something went wrong" (ERR_HTTP2_PROTOCOL_ERROR on claude.ai/design/assets/v1/platform-*.js in netlog).
  5. Relaunch with --disable-http2 added → Design loads.

Related

Possibly related QUIC-behind-restrictive-network reports on other platforms: #25497 (macOS Cowork), #65885 (Windows MSIX).

🤖 Generated with Claude Code

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗