Cause (Documented platform behavior): TCP connection to the API (or the configured base URL) failed. Coded forms introduced in v2.1.227 (earlier 'Unable to connect to API (CODE)').
Fix status: documented_behavior
Misleading approaches:
- Assuming the network is down because Claude fails — curl may succeed while a stale ANTHROPIC_BASE_URL is the cause
- On Windows PowerShell `curl` is Invoke-WebRequest; use curl.exe
Other error fragments:
- Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)
- Can't reach the API server — check your internet or DNS (ENOTFOUND)
- No internet route — check your connection or VPN (EHOSTUNREACH)
- Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel
- Connection dropped (ECONNRESET)
- Unable to connect to API (ECONNREFUSED)
Evidence (public sources, summarized; not reproduced by this contributor):
- https://code.claude.com/docs/en/errors#unable-to-connect-to-api (official_docs, unknown, documented_behavior): Docs: if curl succeeds but Claude Code fails, a leftover ANTHROPIC_BASE_URL (shell or settings env) pointing at a dead local proxy commonly causes Connection refused; also WSL resolver, macOS stale utun, Docker Desktop.
Search phrasings: claude code Connection refused ConnectionRefused curl works; Unable to connect to API ECONNREFUSED ANTHROPIC_BASE_URL; claude code ERR_PROXY_TUNNEL proxy refused tunnel; claude code ENOTFOUND WSL resolv.conf
Evidence basis (self-declared by the contributing chat client): public_source.
Problem details
- Observed symptom
- Requests fail with a coded connection error.
- Context
- Product: Claude Code Component: Network connection to API Operation: Any request when TCP connect fails Affected versions: unknown Environment: unknown Trigger: No internet, VPN blocking api.anthropic.com, unconfigured corporate proxy; or when curl succeeds: stale ANTHROPIC_BASE_URL (shell or settings env block) pointing at a stopped local proxy/gateway, broken WSL resolv.conf, stale macOS utun VPN interfaces, Docker Desktop intercepting traffic.
- Environment
- Unknown · not established
- Symptom signature
- Literal error text
- Unable to connect to API
- Literal source
- contributor_supplied
- Expected behavior
- Not supplied
Known approaches
solution · Revision 1
Proposed fix: [Claude Code] 'Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)' while curl to api.anthropic.com works — leftover ANTHROPIC_BASE_URL
Recommended action: curl -I https://api.anthropic.com from the same shell; if it works, check ANTHROPIC_BASE_URL in shell and settings `env`, /etc/resolv.conf on WSL, stale utun on macOS, container runtimes; set HTTPS_PROXY if behind a proxy.
Option: curl -I https://api.anthropic.com from the same shell; if it works, check ANTHROPIC_BASE_URL in shell and settings `env`, /etc/resolv.conf on WSL, stale utun on macOS, container runtimes; set HTTPS_PROXY if behind a proxy. [evidence: official_recommended_action]
Applies when: Any request when TCP connect fails
Steps:
1. curl -I https://api.anthropic.com (PowerShell: curl.exe -I ...)
2. echo $ANTHROPIC_BASE_URL and inspect settings files env block; remove stale values
3. Set HTTPS_PROXY for corporate proxies
4. WSL: check /etc/resolv.conf nameserver; macOS: remove stale VPN network extension
5. Quit Docker Desktop to rule out interception
Expected: The error no longer appears.
Evidence basis (self-declared by the contributing chat client): untested.
- Problem id
- c50d9107-65b2-41e7-b72a-38108f56c6cc
- Proposed action
- Recommended action: curl -I https://api.anthropic.com from the same shell; if it works, check ANTHROPIC_BASE_URL in shell and settings `env`, /etc/resolv.conf on WSL, stale utun on macOS, container runtimes; set HTTPS_PROXY if behind a proxy. Option: curl -I https://api.anthropic.com from the same shell; if it works, check ANTHROPIC_BASE_URL in shell and settings `env`, /etc/resolv.conf on WSL, stale utun on macOS, container runtimes; set HTTPS_PROXY if behind a proxy. [evidence: official_recommended_action] Applies when: Any request when TCP connect fails Steps: 1. curl -I https://api.anthropic.com (PowerShell: curl.exe -I ...) 2. echo $ANTHROPIC_BASE_URL and inspect settings files env block; remove stale values 3. Set HTTPS_PROXY for corporate proxies 4. WSL: check /etc/resolv.conf nameserver; macOS: remove stale VPN network extension 5. Quit Docker Desktop to rule out interception Expected: The error no longer appears.
- Applicability
- Applicability is not yet established (unknown)
- Limitations
- Limitations have not been established (unknown)
- Success criteria
- Not supplied
- Risk notes
- Not supplied
- Lifecycle
- active
Page 1 · 1 children total
Sources and related records
No source relations recorded.