anthropics / anthropics/claude-code

[BUG] Claude Desktop Windows cold start: one-machine ACL withdrawal/reinstatement (0x80070005 LaunchProcess)

Open
#94,384 1 comment 0 reactions 0 assignees View on GitHub
invalid
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

## Product and environment

This report is for **Claude Desktop for Windows**, not the Claude Code CLI.

- Claude Desktop package: `Claude_1.52386.6.0_x64__pzs8sxrjxfjjc`
- Windows 11 Pro 25H2, build `26200.9445`
- Package state: `Status: Ok`
- AUMID: `Claude_pzs8sxrjxfjjc!Claude`

## What's wrong?

After every packaged `Claude.exe` process exits, Claude Desktop can fail to reopen with:

```text
Windows cannot access the specified device, path, or file.
You may not have the appropriate permissions to access the item.
```

`Microsoft-Windows-AppModel-Runtime/Admin` Event 208 records:

```text
0x80070005: Cannot create the process for package
Claude_1.52386.6.0_x64__pzs8sxrjxfjjc because an error was
encountered while configuring runtime. [LaunchProcess]
```

The package continues to report `Status: Ok`.

That dialog was observed before the controlled run. The instrumented run below did not capture the dialog or show that ordinary closing removed the ACL entries.

## Controlled treatment sequence

On this machine, launch outcome tracked a two-ACE bundle on:

```text
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc
```

The entries were `NT AUTHORITY\SYSTEM` (`S-1-5-18`) and `BUILTIN\Administrators` (`S-1-5-32-544`), both Full Control with object/container inheritance.

| Phase | Two-entry bundle | Visible window | AppModel-Runtime evidence |
|---|---|---|---|
| B1 baseline | present | opened in 1 second | Events 210, 211, 201 |
| A2 withdrawal | absent | none in 15 seconds | Event 208 twice; `0x80070005 [LaunchProcess]` |
| B2 reinstatement | present | opened in 1 second | Events 210, 211, 201 |

Each phase used one scored AUMID launch after the script fenced packaged Claude processes. After withdrawal, the profile root contained only the current user's inherited entries. The result recorded no visible-window PID at timeout, but not a final all-process census. Event 211 shows that Windows added a process to the container during the failed phase. The script then ran package-scoped cleanup, restored both permissions in a `finally` block, and Claude launched again.

The test stopped only `Claude.exe` instances under `C:\Program Files\WindowsApps\Claude_*`. It did not target a separately installed Claude CLI. The script did not invoke reinstall, re-registration, reboot, service-control, or package-payload commands. File contents were not exhaustively compared, and the run did not record whether the shell was elevated.

The removal command reported 51 files processed and zero failures. Restoration reported 53 files processed and zero failures after the intervening launch attempt. Those are command summaries, not proof that every file's DACL changed.

## Window close versus cold exit

A separate non-destructive three-cycle check sent window-close, observed packaged processes for 10 seconds, then used a package-scoped zero-process fence before each AUMID relaunch. In all three cycles the visible window disappeared but nine packaged processes remained at 10 seconds. All three subsequent zero-process-fenced AUMID launches produced a visible window in 1.02 to 1.05 seconds, and both tested root ACL entries remained present.

Window-close therefore did not exercise cold activation on this installation. This check does not show that a user-selected Quit action or full process exit caused ACL removal.

Record:
https://simoneresearch.com/evidence/claude-desktop-close-reopen-2026-09-14.json

## Read-only diagnostic and tested intervention

First confirm the dialog, Event 208 with `0x80070005`, and `Get-AppxPackage` status `Ok`. A matching HRESULT alone is not sufficient. Inspect the per-user profile, not `C:\Program Files\WindowsApps`.

```powershell
$p = "$env:LOCALAPPDATA\Packages\Claude_pzs8sxrjxfjjc"
Get-AppxPackage -Name Claude |
Select-Object PackageFullName, Status, PackageUserInformation
icacls $p /findsid "*S-1-5-18" /T /C
icacls $p /findsid "*S-1-5-32-544" /T /C
```

The following command documents the B2 intervention:

```powershell
icacls $p /grant "*S-1-5-18:(OI)(CI)(F)" "*S-1-5-32-544:(OI)(CI)(F)" /T /C
```

This one-machine result does not establish the command as a generally safe or minimum repair. It recursively adds inheritable Full Control entries throughout Claude's per-user profile. The experiment did not test either SID alone, narrower rights, rollback, another machine, or future updates. `/C` continues after errors, so inspect the completion summary. Do not remove ACLs from a healthy profile to reproduce this result.

## Scope and distinct reports

- n = 1 machine. Both entries were toggled together, so the test does not identify either SID as individually necessary.
- Cause and prevalence remain open.
- The run did not capture the earlier Windows dialog or show that ordinary close removed the entries.
- This is not the `0x80073CF6` install failure in #49917, an update lock such as `0x80073D02`, or the `0x80070020` container sharing violation.
- #62200 contains the same user-facing dialog but was closed as outside Claude Code scope before this ACL reversal existed.
- The same treatment tracked ChatGPT/Codex launch outcome on this workstation. Its natural failure on version `26.901.6511.0` ended at `FinishPackageActivation`; its controlled withdrawal on `26.908.4834.0` ended at `LaunchProcess`. This is same-host consistency, not independent replication.

## Expected behavior and request

A package reporting `Status: Ok` should cold-start after a full process exit or surface an actionable recovery path.

Please determine the supported ACL for Claude's per-user package profile, why activation outcome on this machine changed with this jointly modified two-SID treatment, and whether installation, update, or activation should detect and recover from this state. Please expose the denied object, requested access mask, and principal in diagnostics. This run does not establish that both trustees, Full Control, or recursive propagation are required.

Detailed write-up:
https://simoneresearch.com/blog/claude-desktop-access-denied-after-close/

Author: Jonathan Simone (`thisisntjon`). AI-assisted investigation and instrumentation; I authorized the reversal and remain responsible for the claims.

Contributor guide

No contributing guide indexed for this repository

Research direction

This report targets Claude Desktop for Windows rather than the Claude Code CLI, and names no repository code entry point. Start by confirming Event 208 with 0x80070005, package status, and the two ACL entries under the per-user package profile. Done requires determining the supported ACL, explaining the observed activation change, and defining actionable detection or recovery diagnostics.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
desktop, operating-systems, security
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.