Windows: MSIX update fails — Desktop processes don't terminate, causing file lock

Resolved 💬 3 comments Opened Apr 8, 2026 by avideHub Closed Apr 12, 2026

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).

View original on GitHub ↗

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