Cowork VM networking conflicts with gvisor-tap-vsock (CRC/Podman) on vsock port 1024

Resolved 💬 2 comments Opened Mar 1, 2026 by adamshields Closed Mar 30, 2026

Bug Description

Cowork's VNet host-side network bridge hardcodes Hyper-V vsock port 1024 (service GUID 00000400-facb-11e6-bd58-64006a7986d3). This is the same port used by gvisor-tap-vsock, which is the standard VM networking backend for:

  • Red Hat OpenShift Local (CRC)
  • Podman Desktop (on Windows)
  • Docker Desktop (Hyper-V backend)

When any of these tools are installed and running, CoworkVMService fails to bind port 1024 and the Cowork VM has no network connectivity.

Symptoms

  • Claude Desktop: "Failed to start Claude's workspace / Can't reach the Claude API from Claude's workspace"
  • cowork-service.log:

``
[VM] Warning: failed to start virtual network: failed to listen on vsock port 1024:
failed to listen: Only one usage of each socket address (protocol/network address/port)
is normally permitted.
``

  • coworkd.log (guest side): The VM connects to the wrong listener (gvisor-tap-vsock's HTTP API) instead of Cowork's VNet bridge:

``
[tapvsock] bridge error: invalid frame size: 1213486160
`
(
1213486160 = 0x48545450` = ASCII "HTTP" — the guest receives HTTP instead of raw Ethernet frames)

Root Cause

Both Cowork and gvisor-tap-vsock register/bind the same Hyper-V vsock service GUID:

HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\GuestCommunicationServices\00000400-facb-11e6-bd58-64006a7986d3

The 00000400 prefix = port 1024 in hex. Whoever binds first wins; the other fails silently (Cowork logs a warning but still boots the VM without networking).

Environment

  • OS: Windows 11 Pro 10.0.26200
  • Claude Desktop: v1.1.4498.0 (MSIX package)
  • Conflicting software: Red Hat OpenShift Local (CRC) with crcAdminHelper service + crcDaemon scheduled task

Current Workaround

Stop all CRC/gvisor-tap-vsock processes and services before starting Cowork. They cannot run simultaneously.

Suggested Fix

Use a different vsock port for Cowork's VNet bridge — e.g., port 1025 (00000401-...) or any port that doesn't collide with gvisor-tap-vsock's well-known port 1024. Ideally make it configurable.

Port 1024 is established as the default for gvisor-tap-vsock across the container ecosystem (CRC, Podman, Docker), so Cowork should be the one to change.

View original on GitHub ↗

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