[BUG] Orphaned cowork-svc.exe locks the MSIX package → app won't launch until Windows "Repair" (AppX error 0x80073D02)
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?
The Windows desktop app registers a LocalSystem Windows service named Claude
(...\app\resources\cowork-svc.exe) for the Cowork VM. That process survives as an
orphan after the service is removed from the SCM.
Because the binary lives inside the MSIX package, the orphaned process keeps package
files open. The next RegisterByPackageFullName therefore fails with0x80073D02 (ERROR_INSTALL_RESOURCES_IN_USE), the package is left partially
registered, the app refuses to launch, and Windows offers "Repair". Repairing works,
but the cycle repeats.
This happened 4 times in ~40 minutes on 2026-07-27 and forced a full reboot.
Evidence 1 — orphan process with no matching service:
PS> sc.exe query "Claude"
[SC] EnumQueryServicesStatus:OpenService ERROR 1060: The specified service does not exist.
PS> Get-CimInstance Win32_Process -Filter "Name='cowork-svc.exe'"
ProcessId : 15968 CreationDate : 27/07/2026 14:50:09
Evidence 2 — AppX deployment failure
(Microsoft-Windows-AppXDeploymentServer/Operational):
14:20:39 [401] Error 0x80073D02 - Register operation, volume C:, package Claude_1.24012.9.0_x64__pzs8sxrjxfjjc
14:49:58 [401] Error 0x80073D02 - Register operation, volume C:, package Claude_1.24012.9.0_x64__pzs8sxrjxfjjc
Evidence 3 — service killed, System log (Event ID 7034):
27/07/2026 14:13:40 The Claude service terminated unexpectedly.
27/07/2026 14:20:53 The Claude service terminated unexpectedly.
27/07/2026 14:47:15 The Claude service terminated unexpectedly.
27/07/2026 14:50:05 The Claude service terminated unexpectedly.
There is no Windows Error Reporting entry for cowork-svc.exe and no shutdown line
in its own log — the process is terminated externally, it does not crash.
Evidence 4 — the service cannot self-recover. Every single startup inC:\ProgramData\Claude\Logs\cowork-service.log logs:
Warning: failed to open service for recovery config: Acceso denegado. (Access denied)
Because it fails to install its own recovery actions, Windows never restarts it after a
failure. A transient kill therefore becomes a hard "app is broken until you Repair it".
Ruled out: not memory pressure (no Resource-Exhaustion events that day), not a
Windows Update (last hotfix 2026-07-15), no crash dumps.
What Should Happen?
The Cowork VM service process (cowork-svc.exe) should be stopped and fully released
whenever its Windows service (Claude) is deregistered or the app shuts down, so that
no process from inside the MSIX package is ever left holding package files open.
With that, RegisterByPackageFullName on the next app launch should always succeed, the
app should open normally, and the user should never be prompted to run a Windows package
"Repair".
Additionally, the service should be able to install its own recovery actions. Today every
startup logs failed to open service for recovery config: Access denied, so Windows never
auto-restarts it after a failure — which is what turns a transient process kill into an app
that stays broken until the user manually repairs the package.
Error Messages/Logs
Steps to Reproduce
- Windows 11 Pro, MSIX build of the Claude desktop app, version 1.24012.9.0.
- Use the app normally with Cowork enabled so the
Claudeservice (cowork-svc.exe) starts. - Close and reopen the app (the app re-registers its own MSIX package on launch).
cowork-svc.exeremains running while the service is no longer registered in the SCM.- Registration fails with 0x80073D02; the app does not launch and Windows prompts "Repair".
Workaround: kill the orphan BEFORE relaunching, in an elevated PowerShell:
Get-Process cowork-svc -ErrorAction SilentlyContinue | Stop-Process -Force
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.211
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Terminal.app (macOS)
Additional Information
Expected: cowork-svc.exe is stopped and released together with its service, so the MSIX
package can always be re-registered and the app launches normally.
Actual: the process is orphaned, holds the package files open, registration fails with
0x80073D02, and the app becomes unusable until the user runs a Windows package repair.
Claude desktop app: 1.24012.9.0 (MSIX, Claude_1.24012.9.0_x64__pzs8sxrjxfjjc)
Claude Code: 2.1.211
OS: Windows 11 Pro 10.0.26200 (build 26200), x64
Machine: always-on workstation/server, also runs Docker Desktop (WSL2) and a VPN
client with WFP network filter drivers
Logs: C:\ProgramData\Claude\Logs\cowork-service.log
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
Adding a data point that extends this issue: in my case
cowork-svc.exewas not just an orphaned process — it is registered as an auto-start Windows service (CoworkVMService) whose binary lives inside the MSIX package:Consequence: even after every
claude.exeprocess is terminated (verified 0 processes in the package family viaGetPackageFamilyNameenumeration), the package stays "in use", so every repair attempt fails with0x80073D02(ERROR_PACKAGES_IN_USE). AppXDeploymentServer Event 9641 reports:Because the service is auto-start, a reboot alone does not help — the service re-locks the package at boot before any repair can run.
Environment:
Claude_1.24012.9.0_x64__pzs8sxrjxfjjc), Windows 10 Pro 19045exitCode: 101457950) → Crashpad dump → CodeIntegrity Event 3010 (AppxMetadata\CodeIntegrity.catmissing, status0xC000003A) + Event 3033 (vk_swiftshader.dll) → package statusModified, NeedsRemediation→ app can no longer launch ("There's a problem with Claude, reinstall from the original install location" dialog)What worked / didn't work (all verified via AppXDeploymentServer events):
| Step | Result |
|---|---|
| Kill all claude.exe, retry activation | ❌ 0x80073D02 — blocked by CoworkVMService |
|
Stop-Service CoworkVMService, retry activation | ✅ Register (RepairAppRegistrationOption) completes 0x0 — but status staysModified, NeedsRemediation|| Settings → Apps → Claude → Advanced options → Repair | ✅ completes (checkmark) — but it only re-runs
RegisterByPackageFullNamewithRepairAppRegistrationOptionagainst the localAppxManifest.xml; missing payload files are NOT restored, so status staysModified, NeedsRemediationand launch still fails || Over-the-top reinstall of official MSIX (
Add-AppxPackage -ForceUpdateFromAnyVersion, elevated) | ✅ FIXED — statusOk, app launches normally, app data preserved |Reinstall details: downloaded the official MSIX (246MB, Authenticode-valid,
Anthropic, PBC) fromhttps://api.anthropic.com/api/desktop/win32/x64/msix/latest/redirectand applied it over the top from an elevated PowerShell — no uninstall, no Reset. Sign-in state and app data survived.Interesting correction: after the fresh official MSIX install,
AppxMetadata\CodeIntegrity.catis still absent — so its absence appears to be normal for this package, and CodeIntegrity Event 3010 referencing it is likely noise rather than evidence of corruption. Whatever made the packageModifiedwas elsewhere in the payload.Three takeaways for anyone hitting this:
0x80073D02even with zero Claude processes, checkGet-Service CoworkVMServiceand stop it first (Stop-Service CoworkVMService -Force).Modified, NeedsRemediationafter they "succeed", go straight to an over-the-topAdd-AppxPackageof the official MSIX (elevated,-ForceUpdateFromAnyVersion). This preserves app data.vk_swiftshader.dll) as the root cause — Chromium-based apps intentionally enable a Microsoft-signed-only DLL mitigation on GPU processes, and the same event fires routinely for Chrome itself on the same machine.Follow-up: the same brick recurred twice more (29h later, and then ~15 min after recovery — the second one was a deliberate reproduction). Trigger identified via
main.log: opening the in-app browser pane kills the GPU process within 6–12 seconds (controlled repro details posted in #81840). The recovery procedure from my previous comment reproduced cleanly both times (~15 min each).One note: after the over-the-top reinstall,
CoworkVMServicecame back asStartType: Automaticthe first time butDISABLEDthe second time — if Cowork stops working after a reinstall, check that service's start type.Still present on 1.26832.0.0, ARM64 — plus the manifest-level root cause and a reboot-free recovery.
Hit this today (2026-08-09) on Windows 11 ARM64 (Snapdragon X Plus), package
Claude_1.26832.0.0_arm64__pzs8sxrjxfjjc. Same signature as @labolabo's comment, so it is neither architecture- nor version-specific — this is ~6 weeks and many releases later, on a different arch.The manifest is the root cause
AppxManifest.xmldeclares the service nested inside<Application>, withStartupType="auto":Two consequences follow directly from those two attributes:
<Application>, the service inherits the app's AUMID. That is why deployment reports the app as running when only the service is alive:Running apps: {Claude_pzs8sxrjxfjjc!Claude}. The user is instructed to close an app that is already closed, and no amount of closing windows or killingclaude.exehelps.StartupType="auto"pins the package "in use" from boot onward — but the manifest already declares a named-pipe start trigger (\pipe\cowork-vm-service). Trigger-start is precisely whatStartupType="demand"is for. Theautolooks gratuitous: withdemandplus the trigger that is already there, the service would start on first Cowork use and idle-stop afterwards, instead of holding the package hostage 24/7.Settings → Repair can never succeed, while a plain Register can
This asymmetry is what turns an annoyance into a hard brick, and I have both paths in one log minutes apart (
Microsoft-Windows-AppXDeploymentServer/Operational).Plain Register — succeeds, because it force-terminates the service:
Settings → Repair — aborts, because it refuses to:
Worth highlighting: Repair's step 1 succeeded — it re-downloaded the full MSIX from
downloads.claude.aiand staged it (44.9 s) — and then step 2 discarded that work. So the dialog steers users into a path that costs a full package download and then structurally cannot complete while an auto-start service from inside the package is running. The accompanying Windows text ("We couldn't repair this app because it's currently running. Close the app and try again.") is unactionable: the thing that is running is an invisible LocalSystem service, not the app.Recovery needs neither elevation nor a reboot
Contrary to what the thread suggests, no reboot or reinstall is required.
Stop-ServiceonCoworkVMServiceworks unelevated, and re-registering is exactly what Repair's failing step 2 attempts:Verified end to end on my machine: register succeeded at 15:39:35 (event 400), app launched at 15:39:59,
main.logresumed writing normally. About 30 seconds, versus the reboot and reinstall cycles reported upthread. The service comes back on its own afterwards, so nothing is left disabled.Ask
Please consider (a)
StartupType="demand", since the start trigger is already declared and appears sufficient, and/or (b) moving thewindows.serviceextension out of<Application>so a background service stops presenting itself to the deployment stack as a running app.As shipped, an app with auto-update enabled can put itself into a state where the only remediation Windows offers is the one remediation that is guaranteed to fail. This is my second occurrence.