[Bug] Claude Desktop Windows MSIX update leaves orphaned container preventing launch
Bug Description
Claude Desktop Windows MSIX (2.7032, now 2.9939) won't launch after every in-app update: "Another program is using this file". Resource Monitor shows orphaned job \Container_Claude_2.2553.13.0_x64__pzs8sxrjxfjjc held by svchost.exe (netsvcs) while only 2.7032 was installed (Get-AppxPackage: single version, Ok). Persists through clean reboots; Terminate, stopping CoworkVMService and killing processes don't help; Helium User.dat stays locked. Only Remove-AppxPackage + restart + reinstall fixes it, and it returned on the next update. Updater should tear down the previous version's container.
Environment Info
- Platform: win32
- Terminal: windows-terminal
- Version: 2.1.282
- Feedback ID: 7ffb2546-d4de-44e3-8e37-2782308e6244
Errors
[]
----
Details
Environment: Windows 11, corporate domain-joined laptop, Claude Desktop from claude.ai/download (x64 MSIX).
Symptom: After an in-app update, Claude fails to launch with a Windows dialog pointing to C:\Program Files\WindowsApps\Claude_<version>_x64__pzs8sxrjxfjjc\...: "Another program is using this file right now".
History:
First occurrence on version 2.7032.0.0. It persisted through several full restarts (clean boot confirmed via LastBootUpTime).
Resource Monitor showed a Job handle \Container_Claude_2.2553.13.0_x64__pzs8sxrjxfjjc... held by svchost.exe (netsvcs -p), even though only 2.7032.0.0 was installed (Get-AppxPackage showed a single version, status Ok).
CoworkVMService pointed correctly to the 2.7032 path, so it wasn't a stale service registration.
Stopping CoworkVMService, killing Claude processes, and using Settings → Terminate did not help. The package's SystemAppData\Helium\User.dat hives stayed locked.
Only a full uninstall (Remove-AppxPackage -AllUsers), restart, and fresh reinstall fixed it.
The same error came back after the next update, to 2.9939.1.0.
Impact: The desktop app is unusable after most updates. Recovering requires a full reinstall plus a manual backup and restore of claude-code-sessions to keep Claude Code sessions. I'm currently working around it with the Claude Code CLI.
Expected: The updater should release or tear down the previous version's app container before the new version launches, so updates don't leave the app unlaunchable.