Bug: Claude Code times out on USB tethering + VPN (Windows)

Resolved 💬 4 comments Opened Nov 16, 2025 by belumume Closed Jan 18, 2026

Claude Code CLI consistently fails with timeouts when using USB tethering + VPN on Windows 11. Works fine on WiFi + VPN with the same provider.

Environment:

  • Windows 11, Claude Code v2.0.42
  • USB tethering from Android phone
  • Tested with multiple VPN providers (all fail identically)

Reproduction:

  1. Enable USB tethering from phone
  2. Connect VPN
  3. Run claude and send a message
  4. Observe timeout every time

Output:

> hello
  ⎿  Request timed out.
     Retrying in 0 seconds… (attempt 4/10)

Debug logs:

[ERROR] Error streaming, falling back to non-streaming mode: Request timed out.
[ERROR] Error in non-streaming fallback: Request was aborted.
[DEBUG] MCP server "render": HTTP Connection failed after 10343ms: fetch failed

Critical finding:

I wrote a test script using @anthropic-ai/sdk directly and it works fine on the same USB + VPN connection:

const client = new Anthropic({ apiKey });
const stream = await client.messages.stream({
  model: 'claude-3-5-sonnet-20241022',
  max_tokens: 50,
  messages: [{ role: 'user', content: 'test' }],
});
// Works! Stream starts, gets response

So the network is fine, Anthropic's API is reachable, streaming works. Only Claude Code CLI fails.

What works on USB + VPN:

  • All basic networking (ping, DNS, curl)
  • HTTPS requests
  • Server-sent events (tested with curl -N)
  • HTTP/2 (tested with Node.js http2 module)
  • Long-lived real-time connections (voice calls work fine)
  • Direct Anthropic SDK (both simple and streaming requests)
  • claude.ai in browser

What fails:

  • Claude Code CLI only

Comparison:

| Configuration | Status |
|---------------|--------|
| USB + VPN (any provider) | ❌ Fails |
| WiFi + VPN (any provider) | ✅ Works |
| USB without VPN | ✅ Works |

Root cause hypothesis:

Debug logs show multiple services failing simultaneously:

  • Anthropic API: timeout
  • MCP servers: "fetch failed" after 10s

This suggests Claude Code is making concurrent connection attempts (API + MCP servers + telemetry) which may be triggering a Node.js/Electron race condition with VPN. Single SDK connections work fine, but multiple concurrent ones fail.

Possibly related to this Node.js bug: https://github.com/nodejs/node/issues/50655 (race condition in internalConnectMultiple with VPN)

Workarounds attempted (all failed):

  • Split tunneling (excluding Node.js from VPN)
  • Disabling VPN lockdown/kill switch features
  • Static routing for Anthropic API endpoints
  • Windows Firewall rules for Node.js
  • Updating network drivers
  • Various VPN protocol/feature toggles

View original on GitHub ↗

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