[BUG] Windows MSIX auto-update terminates running app — "Another program is currently using this file"

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 27, 2026

Environment

  • Claude Desktop (MSIX), Windows 11 x64
  • Package family: Claude_pzs8sxrjxfjjc
  • Electron 42.10.0 / Node 24.18.1
  • Affected versions observed: 1.32352.x, 1.37937.1 → .2 → .3

Summary

Auto-update stages a new MSIX package, then cannot complete the swap because the
running app holds file handles inside its own package directory. Windows shows an
error dialog titled with the staged package path and terminates the app. From the
user's side this reads as the app crashing every few hours.

Error dialog

Title: C:\Program Files\WindowsApps\Claude_1.37937.2.0_...
Body:  Another program is currently using this file.

Evidence

  1. Four package versions accumulated in WindowsApps, two staged on the same day

(8/26 11:10 AM and 8/26 8:18 PM) — old versions were not cleaned up because the
swap kept failing.

  1. Reported appVersion advanced 1.37937.1 -> 1.37937.2 only via the crash, not a

clean restart.

  1. Crashpad\reports is empty — no minidump, consistent with external termination

by package deployment rather than an app fault.

  1. Fully quitting the app (tray + ending all Claude.exe) and relaunching let the

update complete, and the superseded package was then removed correctly.

Secondary issues

  • After the update, %LOCALAPPDATA%\Claude\logs was emptied. Prior logs (5.3 MB

main.log) were destroyed, which removes the evidence for exactly this class of
bug. Logging has not resumed in that location or in
LocalCache\Roaming\Claude\logs.

  • On the forced restart the Cowork agent device lease was not released, producing

"Another device is connected — A Cowork agent is already running on <device>" and
blocking startup until "Disconnect all and retry" was clicked.

Expected

The updater should quit and relaunch the app itself to release its handles, or defer
the swap until next launch — not let Windows kill it mid-session, and not destroy
logs on the way through.

View original on GitHub ↗