[BUG] Dispatch offline on Windows — cowork-svc sends invalid JSON (unsubstituted $ template) to HCS, VM never boots (v1.3109.0)

Resolved 💬 3 comments Opened Apr 18, 2026 by mvckmd Closed May 25, 2026

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?

cowork-svc.exe is sending an invalid JSON document to the Windows Host Compute Service (HCS) on every VM creation attempt, causing HCS to reject the call with error 0xC037010D. The literal $ in the error message strongly suggests an unsubstituted template variable in whatever code path builds the VM spec JSON. As a result the Cowork VM never boots, and Dispatch permanently shows "Desktop appears offline" — even though the service, hypervisor, and network are all healthy.

User-facing symptom: Dispatch tab on both Desktop and mobile shows: Desktop appears offline. Will run when it reconnects.

Note: This is a Claude Desktop / Cowork bug on Windows, not a Claude Code CLI bug. Filing here per precedent set by #49514, #48683, #43907 (where Claude Desktop / Cowork issues are tracked in this repo). Happy to move if there's a more appropriate location.

What Should Happen?

cowork-svc.exe should submit a valid JSON VM spec (with all template variables fully interpolated) to HcsCreateComputeSystem / HcsModifyComputeSystem. HCS should accept the spec, the Cowork VM should boot, and Dispatch should come online and run queued tasks (instead of showing "Desktop appears offline").

Error Messages/Logs

Every VM creation attempt produces Event ID 11001 in `Microsoft-Windows-Hyper-V-Compute-Admin`:


The specified property query is invalid: The virtual machine or container JSON document is invalid.
(0xC037010D, 'Invalid JSON document '$'').


The `'$'` is the literal payload HCS received — it appears `cowork-svc` submitted a template string where the variable was never interpolated.

**Sample log excerpt (last ~4 days):**


18/04/2026 10:47:00 PM  Information  1001   HCS started successfully
18/04/2026 10:39:36 PM  Error        11001  Invalid JSON document '$'
18/04/2026 10:33:37 PM  Information  1001   HCS started successfully
18/04/2026 10:32:36 PM  Error        11001  Invalid JSON document '$'
18/04/2026 10:17:52 PM  Information  1001   HCS started successfully
18/04/2026 10:17:05 PM  Error        11001  Invalid JSON document '$'
18/04/2026 10:07:47 PM  Information  1001   HCS started successfully
18/04/2026 10:06:51 PM  Error        11001  Invalid JSON document '$'
...
14/04/2026 2:59:45 PM   Error        11001  Invalid JSON document '$'


**Pattern:** HCS starts, cowork-svc submits JSON `$`, HCS rejects, loop repeats. This has been failing on every attempt since at least **14 April 2026** — predating the v1.3109.0 release that was advertised as fixing the Dispatch-offline issue (status.claude.com resolved notice, Apr 16 21:29 UTC).

Steps to Reproduce

  1. Install Claude Desktop v1.3109.0 on Windows 10 Pro with Hyper-V fully enabled
  2. Sign in, enable Dispatch, toggle Keep awake + computer use
  3. Send any message from the Dispatch tab
  4. Observe "Desktop appears offline" in the UI
  5. Open Event Viewer → Applications and Services LogsMicrosoftWindowsHyper-V-ComputeAdmin
  6. Observe Event ID 11001 with (0xC037010D, 'Invalid JSON document '$'')

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

1.3109.0 (35cbf6) — Claude Desktop for Windows (MSIX: Claude_1.3109.0.0_x64__pzs8sxrjxfjjc). N/A for Claude Code CLI — this is a Cowork / Desktop bug; see Additional Information.

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Related issues

Related but distinct from #45937, #46093, #48007 — this report includes the actual HCS error code and strongly suggests a template substitution bug in cowork-svc.

Environment

  • OS: Windows 11 Business (x64)
  • Claude Desktop version: 1.3109.0 (35cbf6)
  • Plan: Max
  • Install: MSIX (Claude_1.3109.0.0_x64__pzs8sxrjxfjjc)
  • Account: Personal, Max plan (same account on mobile)
  • Features enabled: Microsoft-Hyper-V-All, HypervisorPlatform, VirtualMachinePlatform — all confirmed Enabled; HyperVisorPresent: True
  • Services running: CoworkVMService (Automatic, Running), HvHost (Running)

Troubleshooting performed (none resolved the issue)

  • Full Claude Desktop quit and relaunch (multiple)
  • Full Windows reboot (multiple, including after each feature change)
  • Mobile app force-quit, sign-out, sign-back-in (same account confirmed)
  • Enabled HypervisorPlatform (was Disabled) — no effect
  • Enabled Microsoft-Hyper-V-All (was Disabled) — CoworkVMService registered and started, but HCS calls still fail with the above
  • CoworkVMService confirmed Running, cowork-svc.exe running as child of Claude.exe
  • HypervisorPresent: True via Get-ComputerInfo
  • DNS + TCP 443 to api.anthropic.com succeed
  • Tested on home WiFi and mobile hotspot — same failure
  • No VPN, no corporate proxy, no AV quarantine events
  • Dispatch Settings: Keep awake ON, Allow all browser actions ON, Computer use enabled

Analysis / suggested root cause

The HCS error payload being literally $ strongly implies a shell-style or template-style placeholder (e.g. $VMSpec, $CONFIG_JSON) is being passed through to HcsCreateComputeSystem / HcsModifyComputeSystem without interpolation. Possible causes:

  • Environment variable expected by cowork-svc is not set in the MSIX-packaged service environment
  • Template file with unresolved placeholder is being read and submitted as-is
  • String formatter (e.g. Go os.Expand, PowerShell template) failed silently and emitted only the sigil

The fact that this affects Windows-only and has been consistent for at least 4 days suggests it's a regression in a recent Windows build of cowork-svc.exe or a config/template file that ships with it.

Version

1.3109.0 (35cbf6)

---

_Note on form fields: this is a Claude Desktop / Cowork bug on Windows, so "Claude Code Version", "Platform", and "Terminal/Shell" don't cleanly apply — values populated best-effort. Filing here per precedent (#49514, #48683, #43907)._

View original on GitHub ↗

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