[BUG] Cowork ECONNRESET on macOS (Mac Mini M4) — VM boots fine, API never responds through MITM proxy
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
[BUG] Cowork ECONNRESET on macOS (Mac Mini M4) — VM boots fine, API never responds through MITM proxy
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
Environment
- Device: Mac Mini M4
- CPU: Apple M4
- RAM: 16GB
- macOS: 26.3 (kernel 25.3.0)
- Claude Desktop: 1.1.4088 (production, commit 7e63fd, 2026-02-23)
- VM Bundle: fb30784dadb34104626c8cf6d8f90dd47cd393cc (version 1.1.4088)
- SDK: 2.1.49
- Architecture: arm64
- No VPN, no firewall, no proxy
What's Wrong?
Cowork always fails with:
This task didn't load properly
API Error: Unable to connect to API (ECONNRESET)
Regular Chat mode works perfectly. Only Cowork is broken.
The task never produces any output. The process runs for exactly ~188 seconds (retrying the first API call), never gets a response, and is then killed. Every single attempt follows this exact pattern.
Key Diagnostic Findings
The VM boots and connects fine
All startup steps complete successfully:
VM startup step: vm_boot completed (108ms)
VM startup step: guest_vsock_connect completed (4386ms)
VM startup step: static_ip_assignment completed (0ms)
VM startup step: guest_ready completed (208ms)
VM startup step: install_ca_certificates completed ← 155 certs installed
VM startup step: sdk_install completed (185ms)
API reachability: REACHABLE
But the first API call never succeeds
From the error metadata:
had_first_response: false
seconds_to_outcome: 188
cycle_health: unhealthy
unhealthy_reason: api_error
error_message: API Error: Unable to connect to API (ECONNRESET)
is_recoverable: false
was_killed: true
The process retries for ~188 seconds, never gets a single response, and is then killed with SIGTERM.
Host connectivity is verified
curl -v -X POST https://api.anthropic.com/v1/messages from the host works instantly (gets 401 with test key, confirming full TLS + HTTP/2 connectivity). The host has multiple healthy ESTABLISHED TCP connections to 160.79.104.10:443.
MITM proxy starts but connections fail through it
The coworkd log shows the MITM proxy starts normally:
[proxy] generating ephemeral CA certificate (private key in memory only)
[proxy] ephemeral CA generated (expires: 2027-02-24T07:04:50Z)
[proxy] CA certificate installed to system trust store
[proxy] MITM proxy started on /var/run/mitm-proxy.sock
OAuth token is approved with the MITM proxy:
[Spawn:vm] OAuth token approved with MITM proxy
[Spawn:vm] Spawn succeeded in 84ms
But the actual API request through the proxy never completes.
Additional finding: CA certificate issue (partially resolved)
Initially, install_ca_certificates was completing in 0ms with a warning:
[warn] Failed to query trusted certificates: -25300
Error -25300 is errSecItemNotFound. The cause was /System/Library/Keychains/SystemRootCertificates.keychain missing from the keychain search list. After adding it:
security list-keychains -s ~/Library/Keychains/login.keychain-db /Library/Keychains/System.keychain /System/Library/Keychains/SystemRootCertificates.keychain
The cert install now works (Forwarding 155 trusted CA certificates to guest, Installed 155 host CA certificates in guest), but the ECONNRESET persists. This suggests the cert issue was real but not the only problem.
Steps to Reproduce
- Install Claude Desktop on Mac Mini M4 (macOS 26.3)
- Log in with paid subscription
- Open Cowork tab
- Give any task (even "what is 2+2")
- Wait ~3 minutes
- Error appears: "This task didn't load properly — API Error: Unable to connect to API (ECONNRESET)"
Regular Chat mode works perfectly.
Expected Behavior
Cowork should connect to the API through the MITM proxy and execute tasks.
Actual Behavior
The Claude Code process inside the VM spawns successfully but cannot make any API calls through the MITM proxy. It retries for ~188 seconds, never receives a response (had_first_response: false), and is then killed. The UI shows "This task didn't load properly."
Relevant Log Excerpts
Process lifecycle (cowork_vm_node.log)
12:00:30 [Spawn:create] id=704a5792 name=bold-awesome-euler cmd=/usr/local/bin/claude
12:00:30 [Spawn:vm] OAuth token approved with MITM proxy
12:00:30 [Spawn:vm] Spawn succeeded in 84ms
12:03:35 [CoworkVMProcess:704a5792] kill called with signal: SIGTERM
12:03:35 [Process:704a5792] Exited, code=0, signal=null, duration=185797ms, oom=false
Error event (main.log)
12:03:35 [APIError] Detected SDK error type "unknown" for session local_b74609c5
had_first_response: false
seconds_to_outcome: 188
unhealthy_reason: api_error
error_message: API Error: Unable to connect to API (ECONNRESET)
was_killed: true
What I've Already Tried
- Updated Claude Desktop to latest version (1.1.4088)
- Verified host can reach API (curl works perfectly)
- Cleared Claude Desktop cache
- Killed and relaunched Claude Desktop
- Removed and rebuilt VM cache
- Fixed CA certificate keychain search list (155 certs now install successfully)
- Tested with simplest possible task ("what is 2+2")
- Confirmed no VPN, firewall, or proxy software running
- Confirmed macOS firewall is not blocking Claude
What Should Happen?
it doesn't even work for basic maths function like what is 2+2
Error Messages/Logs
Process lifecycle (cowork_vm_node.log)
12:00:30 [Spawn:create] id=704a5792 name=bold-awesome-euler cmd=/usr/local/bin/claude
12:00:30 [Spawn:vm] OAuth token approved with MITM proxy
12:00:30 [Spawn:vm] Spawn succeeded in 84ms
12:03:35 [CoworkVMProcess:704a5792] kill called with signal: SIGTERM
12:03:35 [Process:704a5792] Exited, code=0, signal=null, duration=185797ms, oom=false
Error event (main.log)
12:03:35 [APIError] Detected SDK error type "unknown" for session local_b74609c5
had_first_response: false
seconds_to_outcome: 188
unhealthy_reason: api_error
error_message: API Error: Unable to connect to API (ECONNRESET)
was_killed: true
Steps to Reproduce
what is 2+2 on my new claude cowork account
Claude Model
Sonnet (default)
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
Claude 1.1.4088 (7e63fd) 2026-02-23T21:25:53.000Z
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗