[Bug] MSIX auto-update leaves package in unlaunchable state: 0x80070020 container creation failure
Bug Description
Claude Desktop (MSIX) fails to launch after auto-update: 0x80070020 creating Desktop AppX container
After the MSIX package auto-updates (stealth update on idle), Claude Desktop can no longer launch.
Windows shows a dialog titled with the package exe path and a sharing-violation message that comes
from shell32.dll.mui (pt-BR: "Ha um outro programa usando este arquivo no momento.").
Env: Windows 11 Pro 26200. Package Claude_1.40609.1.0_x64__pzs8sxrjxfjjc, Status=Ok,
SignatureKind=Developer. Reproduces across an entire team on the same corporate image.
Every launch attempt logs in Microsoft-Windows-AppModel-Runtime/Admin:
Event 215 - 0x80070020: cannot create the Desktop AppX container for package
Claude_1.40609.1.0_x64__pzs8sxrjxfjjc due to an error converting the job
Event 208 - 0x80070020: cannot create the process for package ... [LaunchProcess]
Key facts:
- Not a stale shortcut: launching via AUMID shell:AppsFolder\Claude_pzs8sxrjxfjjc!Claude fails identically.
- Not a locked file / not AV: File.Open(exe, Open, Read, FileShare.None) SUCCEEDS, so nothing holds the
executable. The failure is silo/container creation, not a file handle.
- The packaged service CoworkVMService (app\resources\cowork-svc.exe, LocalSystem, declared via
desktop6:Extension Category="windows.service") DOES get a container for the same package
(events 210/211) while the user-session app never does. Each launch attempt reinstalls that service
(SCM 7045 + 7040) and it restarts even after being stopped. Suspected conflict between the packaged
service and the app over the package silo after servicing.
Did not fix it:
- Stopping CoworkVMService.
- Add-AppxPackage -DisableDevelopmentMode -Register <InstallLocation>\AppxManifest.xml (ran OK,
app still would not launch).
Repro:
1. Leave Claude Desktop idle with a staged update so the stealth updater fires. main.log shows
"[stealth-update] Triggering stealth update after idle timeout" then
"beforeQuitForUpdate handler fired, going down for update".
2. Package Register completes successfully (AppXDeploymentServer events 400/613).
3. Try to open Claude afterwards - the app never starts, dialog appears.
Timeline: update applied 2026-09-01 17:14:41-43 (1.40609.0.0 moved to WindowsApps\Deleted).
Failed launches 2026-09-02 08:19:07-11, 08:22:29-33, 08:23:49-53.
Also present in main.log, earlier updater instability:
"Auto-update error: Deployment failed (-2147009287)"
"erro 0x80072EFD: falha ao abrir o pacote do local Claude-<sha>.msix (-2147009296)"
Environment Info
- Platform: win32
- Terminal: null
- Version: 2.1.251
- Feedback ID: e538079b-83e2-443c-a22e-c79722622936
Errors
[]
3 Comments
I hit what looks like the same underlying issue, on a different machine (Windows 10 Pro 19045, x64, corporate-managed), and can add a data point about what happens after fully removing the stuck MSIX package — since this report describes the state with the package still present.
Same starting point:
Claude_1.40609.1.0_x64__pzs8sxrjxfjjcCoworkVMService(declared viawindows.serviceextension,LocalSystem) still holding a container/registration for that package while the user-session app can't launch. In my casesc.exe qc CoworkVMServiceshowedBINARY_PATH_NAMEstill pointing at that old package path even after later reinstall attempts.scandiron%APPDATA%\Claude(bind-mapped via bindflt into the package container) before writing, throwingPlantDetectedError: Unreadable component during pre-traversal probeand failing WSL deploys withDeployError ... artifact: "cli archive". Full launch failure came later.What I additionally tried — full removal, not just stop/re-register:
Get-AppxPackage *Claude*returning no results (not just Status≠Ok — the package was fully gone).The
.errlog this time points to a different, earlier crash than the container error in this report:This crashes on
app.getPath('logs')during startup, before any window opens — so either a full clean reinstall doesn't fully reset whatever state is involved (registry, some other leftover under%APPDATA%/%LOCALAPPDATA%, etc.), or this is a related-but-distinct bug that produces the same generic error message.Happy to attach a redacted diagnostic bundle (system info, main.log, reachability, MCP logs) if useful — can also provide un-redacted values privately via a support ticket if that's a faster path for someone with access to internal tooling.
Confirmed workaround (same as this report's context): running the Claude Code CLI directly inside WSL, bypassing Claude Desktop entirely, works normally — tested end-to-end (binary runs,
/loginworks, prompts get normal responses).I'm experiencing the same issue with Claude Desktop on Windows. Claude suddenly closes, and reopening it gives "Another program is currently using this file."
Event Viewer consistently shows 0x80070020 (Events 215/208): "Cannot create the Desktop AppX container... error encountered converting the job."
I tested with CoworkVMService stopped, all Claude/Claude Code processes terminated, and no Claude-related handles found in Process Explorer. The issue still occurs. Get-AppxPackage also shows only one correctly registered Claude package.
Restarting Windows fixes it temporarily, but the issue eventually returns.
-------------------------------------------------------------------------------------------------------------------
Estoy experimentando el mismo problema con Claude Desktop en Windows. Claude se cierra repentinamente y, al intentar abrirlo de nuevo, aparece «Otro programa está utilizando este archivo».
El Visor de eventos muestra de forma consistente el error 0x80070020 (eventos 215/208): «Cannot create the Desktop AppX container... error encountered converting the job.»
He probado con CoworkVMService detenido, todos los procesos de Claude/Claude Code finalizados y sin ningún handle relacionado con Claude detectado mediante Process Explorer. El problema persiste. Get-AppxPackage también muestra un único paquete de Claude correctamente registrado.
Reiniciar Windows lo soluciona temporalmente, pero el problema acaba volviendo.
Hitting this too, twice now, on a personal machine rather than a managed corporate image — so it is not specific to your team's build. Still reproducing on current versions, two weeks after this was filed.
Environment: Windows 11 Home, build 26200 (you are on 11 Pro, same build). MSIX install, package family
Claude_pzs8sxrjxfjjc.| | Occurrence 1 | Occurrence 2 |
|---|---|---|
| Date | 2026-09-11 | 2026-09-18 |
| App | 1.49585.0 → 1.52386.0 | 2.110.0 → 2.2553.1 |
| CLI | 2.1.260 → 2.1.266 | 2.1.271 → 2.1.275 |
| Downtime | ~70 min, 9 launch attempts | ~2 min, 2 launch attempts |
Two stealth updates out of two ended this way. Both times the trigger was the idle-timeout updater, not a manual update.
The app's own log ends at the update quit:
and then contains nothing at all until the first successful start after a reboot — the process never reaches any of its own code. Meanwhile
Microsoft-Windows-AppModel-Runtime/Adminshows the same four events in both occurrences:Worth noting the ordering, which is identical in both incidents: the 0x5 (access denied) on the outgoing package comes first, one second before the 0x80070020 on the incoming one. The old package's runtime status cannot be moved to
0x480000, and only then does the container for the new package fail. That reads less like a file lock and more like the old package never fully releasing its runtime state — consistent with your silo hypothesis.Two more data points:
CoworkVMServiceis healthy throughout. Its log shows the service starting, verifying its signature and listening on its pipe on every attempt; what never appears is[Server] Client connected, because the app side never launches. It only connects after a reboot. So the service is not crashed — it is simply the only half of the package that gets a container.Microsoft-Windows-TWinUI/Operationalas event 1621 with result 7. In occurrence 1 the Service Control Manager additionally logged 7034 (service terminated unexpectedly) three times across the 70 minutes of retries.A reboot fixes it immediately and reliably — confirmed twice. That is the one workaround I can confirm works, and it is worth adding to the issue since none of the lighter ones do. I have not tested sign-out / sign-in; if someone hits this and tries that first, it would be useful to know, since it would narrow the leak down to per-session job objects rather than machine-wide state.
From a user's point of view the bad part is the trigger: the updater fires on idle, so the app breaks itself while unattended, and what you come back to is a Windows sharing-violation dialog rather than anything pointing at the update. The first time, it cost me an hour before I found the AppModel-Runtime events.