Update restart fires without user action, even with an update banner staged and unactioned

Status Open
Reported on v2.1.246
Maintainer reply None cached
Activity 3 comments · opened Aug 31, 2026

Split out of anthropics/claude-code#90172, which reports eight interconnected defects arising from
one root cause: the desktop app restarts itself to apply an update and destroys the running Claude
Code sessions. That issue holds the shared context and the manual recovery addendum. This is
defect 4 of eight.

Product: Claude Desktop (Claude Code desktop app)
App version: 1.37937.3 (bundled CLI 2.1.246)
Platform: Windows 11 Pro 10.0.26200, x64
Reported: 2026-08-27
Frequency: at least four times in five days (2026-08-23 to 2026-08-27)

The defect

One profile had an update banner staged:

"updaterBannerStagedAt": { "version": "1.37937.1", "stagedAt": 1787712494076 }

That is 2026-08-25 21:48, matching [updater] Update downloaded and ready to install
{ releaseName: '1.37937.1' }
the same second. The user did not act on it. The app restarted anyway
on 2026-08-26 at 20:04:14, to a later version, 1.37937.3.

The other two profiles have no updaterBannerStagedAt key at all.

A server-side flag is also raising the check rate fourfold:

[updater] Using GrowthBook check_interval_ticks=1 (default 4)

Version churn driving this

Five versions in four days, each a restart opportunity:

1.25927.0  ->  1.34493.1   (2026-08-23 / 08-24)
1.34493.1  ->  1.37937.0   (2026-08-25)
              1.37937.1    (downloaded 2026-08-25 21:48)
           ->  1.37937.3   (2026-08-26)

Expected behavior

Staging a banner and then restarting anyway makes the banner meaningless. If the app has decided the
user should be asked, it should wait for the answer.

The nine defects

Eight were reported together in #90172, because they come from one root cause. The
ninth was carved out of defect 8 once the evidence showed it is reachable with no
restart involved. Each is filed separately so it can be triaged and closed on its own.

| Defect | Issue | What it is |
|---|---|---|
| 1 | #90867 | The update restart kills running sessions. The relaunch restores the window, not the sessions. Core defect. |
| 2 | #90868 | The relaunch does not preserve CLAUDE_CONFIG_DIR, so sessions register into the default config directory. |
| 3 | #90869 | Every installed profile restarts at once, because their update timers stay in lockstep. |
| 4 | #90870, this issue | The restart fires without user action, even with an update banner staged and unactioned. |
| 5 | #90871 | No update policy downloads an update and waits for the user to install it. |
| 6 | #90872 | The restart fires long before the autoUpdaterEnforcementHours deadline. |
| 7 | #90873 | disableAutoUpdates also hides Help > Check for Updates, removing the manual update path. |
| 8 | #90874 | Local sessions are auto-registered with the cloud Remote Control bridge, with no opt-in step. |
| 9 | #90877 | A session card renders as live when no process backs it, and the failure is reported as computer_unreachable. Carved out of defect 8; reachable with no restart involved. |

Shared context, impact, and the manual session-recovery addendum stay on the umbrella
issue #90172. The updater mechanism underneath defects 1 to 7 is filed separately as
#86556: a staged Squirrel build is applied on any relaunch, not only on the
"Relaunch to update" consent gate.

View original on GitHub ↗

3 Comments

jskc518-cell · 1 month ago

Confirming on a second machine, with a notably shorter interval than either row in the table above.

Environment: Windows 11 Home 10.0.26200 x64. Claude Desktop, sideloaded MSIX, package family Claude_pzs8sxrjxfjjc, SignatureKind: Developer. autoUpdaterEnforcementHours never configured, so the documented deadline here is the 72h default.

2026-09-04 — staged banner to forced kill in 16 minutes:

22:34:04  AppXDeploymentServer 603  Add (new package staged)
22:34:23  config.json  updaterBannerStagedAt =
          {"version":"Claude 1.46388.4","stagedAt":1788579263758}
22:50:05  AppXDeploymentServer 603  RegisterByPackageFamilyName
                                    + ForceApplicationShutdownOption   -> app terminated

Two things worth adding to your data:

  1. The app was in active use at 22:50:05 — mid-conversation, window focused. Not idle, not minimized. If the trigger is an idle or hidden-window heuristic as you suggest in #90872, it misread the state here too.
  2. No banner was ever displayed. updaterBannerStagedAt is written on every update on this machine, so staging works, but nothing renders in the sidebar. It stopped appearing around 2026-08-20; prior to that it was reliable and I used it regularly to pick my own restart time.

16 minutes is well under the 57 minutes in your desktop-1 row and nowhere near 72 hours, which I think further supports #90872 — something other than the enforcement window is driving this.

MSIX-specific follow-on: the forced shutdown kills claude.exe, but CoworkVMService is Auto-start and SCM immediately restarts it from inside the package directory, re-locking it. Registration stays broken, and every launch attempt afterward fires RegisterByPackageFullName with RepairAppRegistrationOption, which force-terminates again and fails again. Only a reboot clears it. Same lock as #42776 and #89687.

Recovery without rebooting, for anyone landing here — elevated cmd:

sc stop CoworkVMService
taskkill /F /IM claude.exe /T
taskkill /F /IM cowork-svc.exe /T

Then launch once. Ending the process in Task Manager alone does not work — SCM restarts the service before you can relaunch, and each extra click costs another forced termination.

beedrthomas · 19 days ago

Still active.
Happened to me today, and claude refuses to start up because file in use.

wshallwshall · 6 days ago

Still open. Thanks @jskc518-cell and @beedrthomas. Two things in the 16-minute report go beyond the original. The app was in focused, active use when it was shut down. And no banner was displayed, even though updaterBannerStagedAt was written. On that machine the staging record exists and the user is never asked.

That sharpens the ask. The report said a staged banner should wait for the user's answer. If the banner does not render at all, the restart is the first thing the user sees.

For anyone arriving with the "file in use" failure: the recovery steps in the 2026-09-05 comment above are aimed at exactly that, without a reboot. I have not tested them.