Windows: MSIX update fails — Desktop processes don't terminate, causing file lock
Environment
- OS: Windows 11 Home 10.0.26200
- Install method: Microsoft Store (MSIX package)
- Current version: Claude_1.1062.0.0_x64__pzs8sxrjxfjjc
- Pending update: Claude_1.1348.0.0_x64__pzs8sxrjxfjjc
Problem
When an update is available, Claude Desktop downloads it but cannot apply it. Windows MSIX shows the error "Ce fichier est utilisé par une autre application" (file in use by another application).
The root cause: Claude Desktop spawns 10-12 background processes (Helper, GPU, Renderer) that remain running after the user closes the main window. Windows MSIX cannot replace files of a running app, so it marks the update as "deferred registration" — but the deferred update never completes because the ghost processes never terminate.
Even killing processes via Task Manager doesn't fully work, as some child processes respawn or aren't visible.
Windows Event Log evidence
"Marquage du package Claude_1.1348.0.0_x64__pzs8sxrjxfjjc pour l'inscription différée,
car Claude_1.1062.0.0_x64__pzs8sxrjxfjjc est toujours en cours d'exécution."
"Les packages n'ont pas été mis à jour, car les applications concernées sont toujours
en cours d'exécution. Applications en cours d'exécution: {Claude_pzs8sxrjxfjjc!Claude}"
Process list at time of failed update
12 claude.exe processes running from C:\Program Files\WindowsApps\Claude_1.1062.0.0_x64__pzs8sxrjxfjjc\app\Claude.exe, most without a visible window (ghost processes).
Impact
User must fully reboot the PC to apply every update. This happens consistently on every update cycle.
Expected behavior
Claude Desktop should properly terminate all child processes when the user quits the app via the system tray. Alternatively, register an MSIX UpdateTask or RestartAppAfterUpdate capability to handle graceful shutdown during updates.
Workaround
A scheduled task that kills windowless Claude processes nightly (Get-Process claude | Where-Object { $_.MainWindowHandle -eq 0 -and $_.Path -like "*WindowsApps*" } | Stop-Process -Force).
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗