claude-code - 💡(How to fix) Fix Claude Desktop cowork VM startup permanently breaks WSL2 interop (vsock accept4 failed 110) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#53250Fetched 2026-04-26 05:20:33
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
labeled ×6

Every time Claude Desktop opens a new session, the cowork VM (smol-bin.x64.vhdx) starts up. During its 12–22 second startup window, the Hyper-V vmbus/vsock is disrupted and WSL2 interop breaks permanently for all open terminal sessions — explorer.exe, powershell.exe, and any wsl.exe-based MCP server fail with UtilAcceptVsock:271: accept4 failed 110.

The breakage does not auto-recover. The only fix is wsl --shutdown or opening a new WSL terminal session.

Error Message

$ explorer.exe "$(wslpath -w /some/path)" WSL (xxxxx) ERROR: UtilAcceptVsock:271: accept4 failed 110

Root Cause

Claude Desktop starts two WSL-dependent subsystems simultaneously on every launch:

  1. Cowork VM (smol-bin.x64.vhdx) — takes 12–22 seconds to start, occupies vmcompute/hvsock.sys during boot
  2. MCP servers using wsl.exe (e.g. ckan, istat) — try to establish vsock connections to WSL2 during the cowork VM startup window

These two compete on the same Hyper-V vmbus. The result is a vsock timeout that permanently corrupts WSL2 interop state.

Fix Action

Workaround

Disable CoworkVMService via registry (requires admin):

# Disable
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Name "Start" -Value 4
Stop-Service CoworkVMService -Force

# Re-enable when needed
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Name "Start" -Value 3
Start-Service CoworkVMService

This eliminates the Hyper-V competition but sacrifices cowork code execution in Claude Desktop.

Code Example

06:55:28 [ckan]  Using MCP server command: wsl.exe
06:55:28 [istat] Using MCP server command: wsl.exe
06:55:29 [ckan]  Server started and connected successfully
06:55:29 [istat] Server started and connected successfully
06:55:59 [ckan]  Unexpected token 'I', "I m p o s "... is not valid JSONWindows UTF-16LE error on stdout
06:55:59 [ckan]  Server disconnected
06:56:29 [istat] Unexpected token 'I', "I m p o s "... is not valid JSON
06:56:29 [istat] Server disconnected

---

08:55:54  VM:start  Beginning startup
08:56:06  VM        Network status: CONNECTED
08:56:06  VM:start  Startup complete, total time: 12741ms

09:01:08  VM:start  Beginning startup  ← second session restart
09:01:30  VM:start  Startup complete, total time: 21835ms

---

$ explorer.exe "$(wslpath -w /some/path)"
WSL (xxxxx) ERROR: UtilAcceptVsock:271: accept4 failed 110

---

# Disable
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Name "Start" -Value 4
Stop-Service CoworkVMService -Force

# Re-enable when needed
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Name "Start" -Value 3
Start-Service CoworkVMService
RAW_BUFFERClick to expand / collapse

Summary

Every time Claude Desktop opens a new session, the cowork VM (smol-bin.x64.vhdx) starts up. During its 12–22 second startup window, the Hyper-V vmbus/vsock is disrupted and WSL2 interop breaks permanently for all open terminal sessions — explorer.exe, powershell.exe, and any wsl.exe-based MCP server fail with UtilAcceptVsock:271: accept4 failed 110.

The breakage does not auto-recover. The only fix is wsl --shutdown or opening a new WSL terminal session.

Environment

  • Windows 11
  • WSL2 distro: WLinux (Pengwin) with systemd, kernel 6.6.87.2-microsoft-standard-WSL2
  • Claude Desktop version: 1.3883 / 1.4758
  • Claude Code CLI used concurrently in WSL2 terminals

Root Cause

Claude Desktop starts two WSL-dependent subsystems simultaneously on every launch:

  1. Cowork VM (smol-bin.x64.vhdx) — takes 12–22 seconds to start, occupies vmcompute/hvsock.sys during boot
  2. MCP servers using wsl.exe (e.g. ckan, istat) — try to establish vsock connections to WSL2 during the cowork VM startup window

These two compete on the same Hyper-V vmbus. The result is a vsock timeout that permanently corrupts WSL2 interop state.

Evidence from logs

mcp.log — all MCP servers initialize at the same millisecond, wsl.exe-based ones crash 30 seconds later:

06:55:28 [ckan]  Using MCP server command: wsl.exe
06:55:28 [istat] Using MCP server command: wsl.exe
06:55:29 [ckan]  Server started and connected successfully
06:55:29 [istat] Server started and connected successfully
06:55:59 [ckan]  Unexpected token 'I', "I m p o s "... is not valid JSON  ← Windows UTF-16LE error on stdout
06:55:59 [ckan]  Server disconnected
06:56:29 [istat] Unexpected token 'I', "I m p o s "... is not valid JSON
06:56:29 [istat] Server disconnected

"I m p o s " = "Impossibile..." (Italian Windows error message output as UTF-16LE to stdout, parsed as JSON by the MCP client).

cowork_vm_node.log — VM startup takes 12–22 seconds:

08:55:54  VM:start  Beginning startup
08:56:06  VM        Network status: CONNECTED
08:56:06  VM:start  Startup complete, total time: 12741ms

09:01:08  VM:start  Beginning startup  ← second session restart
09:01:30  VM:start  Startup complete, total time: 21835ms

WSL2 interop test — after cowork VM starts, all Windows interop commands fail:

$ explorer.exe "$(wslpath -w /some/path)"
WSL (xxxxx) ERROR: UtilAcceptVsock:271: accept4 failed 110

Impact

  • WSL2 interop permanently broken after every Claude Desktop session start
  • All wsl.exe-based MCP servers crash on every launch
  • Users who run Claude Code CLI in WSL2 terminals simultaneously with Claude Desktop are particularly affected
  • No order of startup is safe: Claude Desktop itself calls wsl.exe for MCP servers at the same time the cowork VM starts

Workaround

Disable CoworkVMService via registry (requires admin):

# Disable
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Name "Start" -Value 4
Stop-Service CoworkVMService -Force

# Re-enable when needed
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Name "Start" -Value 3
Start-Service CoworkVMService

This eliminates the Hyper-V competition but sacrifices cowork code execution in Claude Desktop.

Suggested Fix

Either:

  1. Delay MCP server startup until after cowork VM is fully connected (sequential instead of parallel initialization)
  2. Stagger VM startup to avoid competing for vmbus during the critical 12–22s window
  3. Don't start cowork VM unless the user explicitly triggers a code execution action (lazy startup)

Related Issues

  • #29045 — VM started on every launch even without Cowork usage
  • #29932 — vsock port 1024 conflict between cowork-vm and other Hyper-V VMs
  • #26216 — cowork-vm-nat permanently breaks WSL2 internet connectivity (fixed in v1.1.4328)
  • microsoft/WSL#13864 — UtilAcceptVsock:271: accept4 failed 110 with heavy VM workloads

extent analysis

TL;DR

Delaying MCP server startup until after the cowork VM is fully connected is likely to fix the WSL2 interop breakage issue.

Guidance

  • Identify the startup sequence of Claude Desktop and its dependent subsystems to understand the timing of the competition for the Hyper-V vmbus.
  • Consider implementing a delay in the MCP server startup to ensure it begins after the cowork VM has completed its startup, avoiding the 12-22 second window of competition.
  • Review the suggested fixes, such as staggering VM startup or implementing lazy startup for the cowork VM, to determine the most suitable approach for the application.
  • Test the workaround of disabling the CoworkVMService via registry to confirm its effectiveness in eliminating the Hyper-V competition.

Example

No code snippet is provided as the issue does not require a specific code change, but rather a reevaluation of the startup sequence and potential delays or staggering of subsystem initializations.

Notes

The provided workaround of disabling the CoworkVMService sacrifices cowork code execution in Claude Desktop, so a more integrated solution that balances the needs of both subsystems is necessary. The issue is closely related to the timing and sequencing of startup processes, making a careful analysis of these aspects crucial for resolving the problem.

Recommendation

Apply a workaround by delaying MCP server startup until after the cowork VM is fully connected, as this approach directly addresses the identified root cause of the competition for the Hyper-V vmbus during the critical startup window.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Claude Desktop cowork VM startup permanently breaks WSL2 interop (vsock accept4 failed 110) [1 participants]