Windows (MSIX): App fails to launch with "Another program is currently using this file" after update; persists through service stop, AppX re-registration; only reboot resolves
Windows (MSIX): App fails to launch with "Another program is currently using this file" after update; persists through service stop, AppX re-registration; only reboot resolves
Environment
- Claude Desktop for Windows (Microsoft Store/MSIX install)
- Installed version:
Claude_1.24012.1.0_x64__pzs8sxrjxfjjc - Package path:
C:\Program Files\WindowsApps\Claude_1.24012.1.0_x64__pzs8sxrjxfjjc
Summary
After an in-app update, Claude Desktop fails to launch with a Windows dialog: "Another program is currently using this file." This recurs on effectively every update. Ending the visible Claude.exe process in Task Manager does not resolve it. Only a full Windows restart restores functionality.
Diagnostic steps taken and results
- Checked for orphaned processes —
Get-Processshowed noClaude.exerunning at all; onlycowork-svc(SessionId 0 — expected for a service, not an orphan). - Stopped CoworkVMService —
Stop-Service CoworkVMService -Forcesucceeded, but the service auto-restarts (StartupType Automatic with auto-recovery).Set-Service -StartupType Disabledfails with "Access is denied," even elevated — ACL appears locked to TrustedInstaller. Stopping the service and relaunching did not fix the issue. - Checked AppXDeploymentServer/Operational event log — no
0x80070020(ERROR_SHARING_VIOLATION). Instead, a repeated automatic repair-and-retry cycle on every launch attempt:RegisterByPackageFullNamewithForceTargetApplicationShutdownOption,RepairAppRegistrationOption→ "finished successfully" → ACL repair events ("Trying to repair ACLs" → "repaired successfully"). This full cycle repeated 5 times across ~5 minutes, each reporting success, yet the app still failed to open. - Manually forced re-registration:
``powershell``
Get-AppxPackage -Name "*Claude*" | ForEach-Object { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppxManifest.xml" }
Completed successfully, no repeated ACL-repair loop this time (repaired once, then clean). App still failed to launch with the same error.
Conclusion
The "repair succeeds, then still won't launch" pattern — even after clean manual re-registration — suggests the blocker isn't a file lock or registration/ACL issue, but a stale kernel-level object (an AppContainer job/silo tied to the previous version) held by the Windows AppInfo/UAC service, clearing only on reboot. Matches patterns in #61635, #45400, #73107, but occurs here on x64, not just ARM64, and persists despite Add-AppxPackage -Register succeeding — which those reports hadn't tested.
Impact
App is unusable after nearly every update until a full OS restart, interrupting active work and requiring PowerShell diagnostics an average user won't attempt.
Requested fix
The updater/relaunch flow should fully terminate and release any AppInfo/UAC-held container job objects for the previous package version before relaunching — not just terminate visible processes and CoworkVMService. A reboot should never be required for a routine app update.
3 Comments
Related / possibly duplicate reports of the same underlying issue:
Container_Claude_...) held bysvchost.exe, only reboot clears itAdd-AppxPackage -Registersucceeding still doesn't fix launch suggests that ARM64-only conclusion was incompleteThis report additionally confirms: (1) the bug reproduces on x64, not just ARM64, and (2) forcing a clean AppX re-registration does not resolve it, which narrows the cause toward a kernel-held object (AppInfo/UAC-owned container job) rather than a registration/ACL problem.
Same issue
Confirming this on ARM64 and on a much newer build — still completely unfixed.
Environment
Claude_1.25927.0.0_arm64__pzs8sxrjxfjjc(in-app auto-update from1.24012.11.0)Same symptom, same dead ends as your steps 2 and 4. But I think I found the piece your step 3 was missing, which upgrades your conclusion from inferred to confirmed.
The
0x80070020is there — it's just in a different logYou checked
AppXDeploymentServer/Operationaland found no0x80070020. It isn't logged there because this isn't a deployment failure — deployment succeeds (Get-AppxPackagereportsStatus: Ok). It's an activation failure, and it lands inMicrosoft-Windows-AppModel-Runtime/Admin, which is readable unelevated:Every launch attempt produces:
0x80070020=ERROR_SHARING_VIOLATION, and "converting the job" is the container/silo conversion step — exactly the stale kernel object you inferred. The user-facing dialog is just that HRESULT rendered as a string, which is why its title bar shows the package path and misdirects everyone into hunting for a locked file inWindowsApps.Occasionally one process does get through before the cascade fails, which I think is why this looks intermittent to some reporters:
Also worth noting for triage:
main.lognever gets a single new line. It's frozen at the last pre-update write, because the app dies before logging initializes. Anyone debugging from app logs alone will find nothing.CoworkVMService is not the cause — timestamps rule it out
Sibling reports (#83968, #84005) pin this on
CoworkVMService, and it's an understandable suspect: it'sAutomatic, runs as SYSTEM, and its binary lives inside the package (...\Claude_<ver>_arm64__pzs8sxrjxfjjc\app\resources\cowork-svc.exe). I chased it too. Sub-second timestamps clear it:| Time | Event |
|---|---|
|
12:00:49.387|Service stop requested(C:\ProgramData\Claude\Logs\cowork-service.log) ||
12:00:50.372| Event 215 —0x80070020container creation fails ||
12:00:50.836|Starting CoworkVMService as Windows service|The container error fires ~460 ms before the service starts, and the service was fully stopped at that instant. Reproduced identically on the previous attempt (error
11:59:23.817, service start11:59:24.380). The service is started by the failing launch — it's downstream, not causal. I also confirmed launching with the service stopped fails exactly the same way.Corroborating your step 2:
Stop-Service CoworkVMService -Forcesucceeds unelevated, butSet-Service -StartupType DisabledreturnsAccess is denied— matching your TrustedInstaller-ACL observation.Everything else ruled out
Add-AppxPackage -DisableDevelopmentMode -Register "...\AppxManifest.xml"→ returned OK, launch still failed. Independent confirmation of your step 4 on ARM64.1.24012.11.0and1.24012.9.0folders were already cleanly removed.Win32_Processfor anything executing from or referencing the package path. Nothing.chrome-native-host.exeand verified the file unlocked — no effect (that's a real but separate bug, below).Reboot is the only recovery, consistent with #53247, #61635, #73107, #76357, #77379.
Separate bug the same update flow exposes
While the app is wedged,
main.logfrom the prior session shows the post-update refresh of the Chrome native host failing repeatedly:38 occurrences across one 3-day log — Windows won't overwrite the running host EXE, so the binary silently stays versions behind (mine was two app versions stale) and the Chrome integration quietly degrades. Not the cause of the launch failure, but the same update flow leaving things half-finished. Worth killing the old host before the copy.
Ask
Seconding the requested fix. Given how many reports this now has (#53247, #61635, #73107, #75337, #76357, #77379, #77421, this one) across x64 and ARM64 and at least four package versions spanning months, a mitigation would help even before the root fix: the app could detect
0x80070020fromAppModel-Runtimeon a failed relaunch and surface "Windows needs a restart to finish updating Claude" instead of a raw Win32 error string that sends people hunting for a nonexistent locked file.