Bug: Claude Code times out on USB tethering + VPN (Windows)
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:
- Enable USB tethering from phone
- Connect VPN
- Run
claudeand send a message - 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
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗