Claude Desktop won't open on Windows 11 — and reinstalling makes it worse
If Claude Desktop ran perfectly for weeks and then suddenly refuses to launch — no window, no error, nothing — you are not alone. The instinctive fix is to uninstall and reinstall. On Windows 11 that often makes things worse: the installer starts failing outright with cryptic codes like HRESULT 0x80073CF6, 0x80073D05, or 0x80073D28.
The good news: your install isn't broken, it's wedged. This guide explains exactly why it happens and gives you a complete, copy-paste 6-phase reset that clears the stuck MSIX package and gets Claude Desktop running again — with Cowork intact.
Before you begin: Run every phase from an elevated PowerShell (right-click → Run as Administrator). The reboot in Phase 2 is mandatory — skipping it is the single most common reason this fix fails.
Do you see one of these errors?
This fix is for you if your Claude Desktop install or update is dying with any of these HRESULT codes:
| Error code | What it means | What it's telling you |
|---|---|---|
| 0x80073CFA | Can't remove the old package | CoworkVMService still holds a file handle on it. |
| 0x80073CF6 | Register step failed | The "add" half of remove-then-add failed; the inner code is in the Event Log. |
| 0x80073D05 | AppData hive is locked | Unregister, reboot, then delete the package's AppData folder. |
| 0x80073D28 | Blocked by policy | Add-AppxPackage was run non-elevated — a packaged service needs Administrator. |
| 0x20 | Sharing violation | Names the exact locked file; check the AppX deployment log. |
Why this happens
Claude Desktop ships as an MSIX package with a packaged background service called CoworkVMService. When an update runs, Windows tries to remove the old package and register the new one in a single "remove-then-add" operation.
If the old package can't be fully removed — usually because the service or a helper process still has a file open — the installer can declare success while actually leaving the package half-registered. From that point on the package is invisible to a normal uninstall, but its family name is still claimed in the AppX store. Every future install is rejected with 0x80073CF6, and locked user-data hives produce 0x80073D05.
Another reinstall can't fix this, because the reinstaller hits the same wall. The only reliable path is a clean reset: fully tear down every trace of the old package, reboot to release the locked hives, then stage and install a fresh copy.
The 6-phase fix
Phase 1 — Clean up the old install
Kill anything still holding the package, unregister it for every user, remove the system-staged (provisioned) copy so Windows doesn't auto-restore it on next login, and delete the blocking service.
# 1. Kill anything from the previous install Get-Process *claude*,*chrome-native-host*,*cowork* -ErrorAction SilentlyContinue | Stop-Process -Force # 2. Remove the registered package (per-user and all-users) Get-AppxPackage -Name "Claude*" | Remove-AppxPackage -ErrorAction SilentlyContinue Get-AppxPackage -AllUsers -Name "Claude*" | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue # 3. Remove any provisioned (system-staged) copy Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -like "Claude*" -or $_.PackageName -like "*Claude*" } | Remove-AppxProvisionedPackage -Online # 4. Delete the conflicting service sc.exe stop CoworkVMService sc.exe delete CoworkVMService Remove-Item "HKLM:\SYSTEM\CurrentControlSet\Services\CoworkVMService" -Recurse -Force -ErrorAction SilentlyContinue # 5. Clean leftover Squirrel / Claude folders Remove-Item "$env:LOCALAPPDATA\AnthropicClaude" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item "$env:LOCALAPPDATA\SquirrelTemp" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item "$env:LOCALAPPDATA\SquirrelClowdTemp" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item "$env:APPDATA\Claude" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item "$env:TEMP\Claude-*.msix" -Force -ErrorAction SilentlyContinuePhase 2 — Reboot (mandatory, do not skip)
Reboot Windows now. This is the step that releases the locked User.dat and UserClasses.dat registry hives still held by your logged-in session. Skip it and the next install attempt is guaranteed to fail with 0x80073D05.
After the reboot, do not launch Claude, Cowork, or any related app. Go straight to an elevated PowerShell and continue with Phase 3.
Phase 3 — Delete the leftover AppData
With the hives unloaded, the old data store finally deletes cleanly.
# Hives are now unloaded — these should succeed silently Remove-Item "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc" -Recurse -Force Remove-Item "C:\ProgramData\Packages\Claude_pzs8sxrjxfjjc" -Recurse -Force -ErrorAction SilentlyContinue # Sanity check — should return nothing reg query "HKU" | Select-String "Claude"If the sanity check returns a hit, a hive is still mounted. Unload it and re-run the two delete commands above:
reg unload "HKU\Phase 4 — Download and stage a fresh MSIX
Download the current package, unblock it, and pre-stage it into the system image (the staging step helps avoid AppX Deployment Service race conditions).
$TempPath = "C:\ClaudeTemp" New-Item -Path $TempPath -ItemType Directory -Force | Out-Null Invoke-WebRequest ` -Uri "https://claude.ai/api/desktop/win32/x64/msix/latest/redirect" ` -OutFile "$TempPath\Claude.msix" -UseBasicParsing Unblock-File -Path "$TempPath\Claude.msix" dism.exe /Online /Add-ProvisionedAppxPackage /PackagePath:"$TempPath\Claude.msix" /SkipLicensePhase 5 — Install (from an elevated PowerShell)
The MSIX contains a packaged service, and registering a packaged service requires Administrator rights. A non-elevated install fails with 0x80073D28.
Add-AppxPackage -Path "C:\ClaudeTemp\Claude.msix" -ForceApplicationShutdown -ForceUpdateFromAnyVersionNo output means success.
Phase 6 — Verify and launch
Confirm the package is registered, launch Claude by its app ID, then clean up the temp folder.
Get-AppxPackage -Name "Claude*" | Select-Object Name, Version, PackageFullName # Expect: Claude 1.3109.0.0 Claude_1.3109.0.0_x64__pzs8sxrjxfjjc explorer.exe "shell:AppsFolder\Claude_pzs8sxrjxfjjc!Claude" # Cleanup Remove-Item "C:\ClaudeTemp" -Recurse -ForceClaude Desktop should now open cleanly — Cowork and all — and future updates will behave again.
Frequently asked questions
Will I lose my chats or Cowork setup?
This process removes the local app package and its cached app-data, not your account. Your conversations and settings are tied to your Claude account and sync back after you sign in. Cowork is reinstalled as part of the fresh MSIX.
I'm on Windows 10 Home and -AllUsers isn't valid.
On some editions -AllUsers is rejected. Skip that single flag; the DISM provisioning step in Phase 4 plus the elevated install in Phase 5 still clear the wedge.
The download keeps failing with a connection or certificate error.
Pull the MSIX directly with curl instead: curl.exe -L -o "C:\ClaudeTemp\Claude.msix" "https://claude.ai/api/desktop/win32/x64/msix/latest/redirect", then continue from the Unblock-File step.
Windows blocks the install entirely.
Enable trusted-app installs via Group Policy: Computer Configuration → Administrative Templates → Windows Components → App Package Deployment → "Allow all trusted apps to install" → Enabled.
The takeaway
When Claude Desktop won't install on Windows 11, the problem usually isn't the app — it's a wedged MSIX left behind by an update whose cleanup step silently failed. Reinstalling on top of it can't work. A clean, ordered reset — tear down, reboot, delete, stage, install, verify — clears it every time. Bookmark this guide for the next time an update gets stuck, and share it with anyone hitting the same wall.
Read Next
More articles you might enjoy
frontend.comments (0)
Leave A Comment