anthropics / anthropics/claude-code

Bug Report: Windows installer fails with AddPackage 0x80073CF6 / 0x80073CF9 when a leftover CoworkVMService exists, and the bootstrapper cannot remove it (Access denied) but continues anyway

Aperta
#89,108 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
area:cowork area:installation bug platform:windows
Lingua principale
Python
Stelle
145k
Fork
23.1k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

### Preflight Checklist

- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code

### What's Wrong?

Bug Report: Windows installer fails with AddPackage 0x80073CF6 / 0x80073CF9 when a leftover CoworkVMService exists, and the bootstrapper cannot remove it (Access denied) but continues anyway


Summary


On Windows 10 Pro 22H2, the Claude Desktop MSIX installer fails at the package
registration stage whenever a leftover CoworkVMService is present on the machine.


The bootstrapper detects the conflict, tries to remove the service while running
elevated, fails with Access is denied, logs it only as a WARNING, and then proceeds
to call AddPackage anyway — which fails. The user is shown a misleading dialog
("Administrator access is required...") even though the installer was already running
fully elevated.


The correlation in a single log file is 4-for-4 and deterministic.


Environment

Field | Value
-- | --
OS | Windows 10 Professional, 10.0.19045 (22H2), x64
Bootstrapper | Claude Setup build 255293a41a25d54c5177aa9614fb4cd620e70b78
Target package | Claude_1.34493.1.0_x64__pzs8sxrjxfjjc
MSIX SHA256 | ad5ead595fec1977c0ccb1d7fab3be040773b716451431dbd6bab457ba31a55c
Sideloading | enabled
S Mode | false
Developer mode | off
Log | C:\Users\\AppData\Local\Temp\ClaudeSetup.log

Every run downloaded the identical MSIX (same SHA256) and passed Authenticode
verification (WinVerifyTrust: MSIX signature is valid, Signature verified: MSIX signer matches bootstrapper). So this is not a download-integrity or signing problem — it is a
registration-stage failure gated on the leftover service.


0x80073CF6 = "Package could not be registered."
0x80073CF9 = ERROR_INSTALL_REGISTRATION_FAILURE — "Install failed. Please contact
your software vendor."


The core defect


From the 08:44 run, elevated (Is elevated: true, Elevation type: Full):


08:44:33.521786 WARNING: CoworkVMService already exists (potential conflict)

08:44:33.521786 Conflicting service: true
08:44:35.328479 Removing conflicting CoworkVMService...
08:44:35.329003 WARNING: failed to remove conflicting service: could not open CoworkVMService: Access is denied.
08:44:35.329003 Checking for existing Claude MSIX packages...
...
08:44:35.357513 Installing via AddPackage (current-user)...
08:44:38.131311 MSIX installation failed: AddPackage failed: AddPackage failed with HRESULT 0x80073CF9

Three problems, in order of severity:


1. The installer continues after a failed prerequisite. It knows the conflicting
service is still there. It knows removal failed. It proceeds to AddPackage regardless,
turning a known, nameable precondition failure into an opaque HRESULT.


2. OpenService returns Access is denied in a fully-elevated context. This suggests
the service is running and/or its DACL denies DELETE/SERVICE_STOP to Administrators.
The installer does not appear to attempt ControlService(SERVICE_CONTROL_STOP) before
DeleteService, nor to enable SeTakeOwnershipPrivilege / adjust the SCM object's DACL.


3. The error dialog names the wrong cause. The user sees:


Administrator access is required to install Claude with full features.

You can try again or install without Cowork.

The installer had administrator access — the log says so on the line above. Retrying
does nothing, because the leftover service is still there. The dialog sends the user into
a loop of re-downloading a 247 MB package (four times in this log alone).


Secondary defect: credentials are lost on every failed cycle


08:44:35.345714 Windows rejected data-preserving removal for Claude_1.34493.1.0_x64__pzs8sxrjxfjjc (0x80073CFA, requires developer mode); relying on in-place update

08:44:35.354512 Removing (user): Claude_1.34493.1.0_x64__pzs8sxrjxfjjc
08:44:35.357513 Windows rejected data-preserving removal ... relying on in-place update

0x80073CFA is ERROR_REMOVE_FAILED; Remove-AppxPackage -PreserveApplicationData
requires developer mode, which is off on this machine (and off by default for most users).
The installer falls back to "relying on in-place update" — but on the failure path the
in-place update never completes, and application data does not survive.


User-visible consequence: the user is forced to sign in again after every failed
install attempt. This was the symptom they originally reported ("it keeps asking me to
sign in"), and they had no way to connect it to the installer. Repeated re-authentication
with no explanation reads to the user as an authentication bug.


Steps to reproduce



  1. On Windows 10 22H2 (developer mode off), install Claude Desktop with Cowork so that
    CoworkVMService is registered.

  2. Put the service into a state the installer cannot open for deletion — observed after a
    prior failed/partial install, and reproduced after a reboot with the service running.

  3. Run Claude Setup.exe and allow elevation.

  4. Observe: Conflicting service: truefailed to remove conflicting service: ... Access is denied
    AddPackage failed with HRESULT 0x80073CF6 or 0x80073CF9 → the
    "Administrator access is required" dialog.


Expected behavior



  • If the conflicting service cannot be removed, stop before calling AddPackage and
    show an actionable message naming CoworkVMService, with the remediation commands.

  • Attempt ControlService(SERVICE_CONTROL_STOP) and wait for SERVICE_STOPPED before
    DeleteService. If the service is marked for deletion, tell the user a reboot is
    required and offer to schedule it.

  • Never show "Administrator access is required" when Is elevated: true is in the log
    three lines above. Surface the actual HRESULT and its meaning.

  • Preserve credentials across a failed install, or state plainly in the failure dialog
    that the user will need to sign in again.

  • Document the Windows 10 22H2 support status for Cowork. If Cowork's virtualization
    service is not supported on Windows 10, the installer should say so up front rather than
    register a service it cannot later clean up.


Working user workaround


Elevated PowerShell / cmd:


sc.exe query  CoworkVMService

sc.exe stop CoworkVMService
sc.exe delete CoworkVMService

Reboot, then re-run the installer. In this log, both runs where the service was absent
(Conflicting service: false) installed successfully in under 20 seconds.


If sc.exe delete also returns access denied, the service DACL must be repaired
(sc.exe sdset) or the removal done from Safe Mode.


Impact



  • Install fails with no actionable diagnostic; the dialog actively misdirects.

  • 247 MB re-downloaded on every retry.

  • User is signed out repeatedly with no stated cause, which is the symptom they perceive
    and report — not the install failure that causes it.

### What Should Happen?

Bug Report: Windows installer fails with AddPackage 0x80073CF6 / 0x80073CF9 when a leftover CoworkVMService exists, and the bootstrapper cannot remove it (Access denied) but continues anyway


Summary


On Windows 10 Pro 22H2, the Claude Desktop MSIX installer fails at the package
registration stage whenever a leftover CoworkVMService is present on the machine.


The bootstrapper detects the conflict, tries to remove the service while running
elevated, fails with Access is denied, logs it only as a WARNING, and then proceeds
to call AddPackage anyway — which fails. The user is shown a misleading dialog
("Administrator access is required...") even though the installer was already running
fully elevated.


The correlation in a single log file is 4-for-4 and deterministic.


Environment

Field | Value
-- | --
OS | Windows 10 Professional, 10.0.19045 (22H2), x64
Bootstrapper | Claude Setup build 255293a41a25d54c5177aa9614fb4cd620e70b78
Target package | Claude_1.34493.1.0_x64__pzs8sxrjxfjjc
MSIX SHA256 | ad5ead595fec1977c0ccb1d7fab3be040773b716451431dbd6bab457ba31a55c
Sideloading | enabled
S Mode | false
Developer mode | off
Log | C:\Users\\AppData\Local\Temp\ClaudeSetup.log

Every run downloaded the identical MSIX (same SHA256) and passed Authenticode
verification (WinVerifyTrust: MSIX signature is valid, Signature verified: MSIX signer matches bootstrapper). So this is not a download-integrity or signing problem — it is a
registration-stage failure gated on the leftover service.


0x80073CF6 = "Package could not be registered."
0x80073CF9 = ERROR_INSTALL_REGISTRATION_FAILURE — "Install failed. Please contact
your software vendor."


The core defect


From the 08:44 run, elevated (Is elevated: true, Elevation type: Full):


08:44:33.521786 WARNING: CoworkVMService already exists (potential conflict)

08:44:33.521786 Conflicting service: true
08:44:35.328479 Removing conflicting CoworkVMService...
08:44:35.329003 WARNING: failed to remove conflicting service: could not open CoworkVMService: Access is denied.
08:44:35.329003 Checking for existing Claude MSIX packages...
...
08:44:35.357513 Installing via AddPackage (current-user)...
08:44:38.131311 MSIX installation failed: AddPackage failed: AddPackage failed with HRESULT 0x80073CF9

Three problems, in order of severity:


1. The installer continues after a failed prerequisite. It knows the conflicting
service is still there. It knows removal failed. It proceeds to AddPackage regardless,
turning a known, nameable precondition failure into an opaque HRESULT.


2. OpenService returns Access is denied in a fully-elevated context. This suggests
the service is running and/or its DACL denies DELETE/SERVICE_STOP to Administrators.
The installer does not appear to attempt ControlService(SERVICE_CONTROL_STOP) before
DeleteService, nor to enable SeTakeOwnershipPrivilege / adjust the SCM object's DACL.


3. The error dialog names the wrong cause. The user sees:


Administrator access is required to install Claude with full features.

You can try again or install without Cowork.

The installer had administrator access — the log says so on the line above. Retrying
does nothing, because the leftover service is still there. The dialog sends the user into
a loop of re-downloading a 247 MB package (four times in this log alone).


Secondary defect: credentials are lost on every failed cycle


08:44:35.345714 Windows rejected data-preserving removal for Claude_1.34493.1.0_x64__pzs8sxrjxfjjc (0x80073CFA, requires developer mode); relying on in-place update

08:44:35.354512 Removing (user): Claude_1.34493.1.0_x64__pzs8sxrjxfjjc
08:44:35.357513 Windows rejected data-preserving removal ... relying on in-place update

0x80073CFA is ERROR_REMOVE_FAILED; Remove-AppxPackage -PreserveApplicationData
requires developer mode, which is off on this machine (and off by default for most users).
The installer falls back to "relying on in-place update" — but on the failure path the
in-place update never completes, and application data does not survive.


User-visible consequence: the user is forced to sign in again after every failed
install attempt. This was the symptom they originally reported ("it keeps asking me to
sign in"), and they had no way to connect it to the installer. Repeated re-authentication
with no explanation reads to the user as an authentication bug.


Steps to reproduce



  1. On Windows 10 22H2 (developer mode off), install Claude Desktop with Cowork so that
    CoworkVMService is registered.

  2. Put the service into a state the installer cannot open for deletion — observed after a
    prior failed/partial install, and reproduced after a reboot with the service running.

  3. Run Claude Setup.exe and allow elevation.

  4. Observe: Conflicting service: truefailed to remove conflicting service: ... Access is denied
    AddPackage failed with HRESULT 0x80073CF6 or 0x80073CF9 → the
    "Administrator access is required" dialog.


Expected behavior



  • If the conflicting service cannot be removed, stop before calling AddPackage and
    show an actionable message naming CoworkVMService, with the remediation commands.

  • Attempt ControlService(SERVICE_CONTROL_STOP) and wait for SERVICE_STOPPED before
    DeleteService. If the service is marked for deletion, tell the user a reboot is
    required and offer to schedule it.

  • Never show "Administrator access is required" when Is elevated: true is in the log
    three lines above. Surface the actual HRESULT and its meaning.

  • Preserve credentials across a failed install, or state plainly in the failure dialog
    that the user will need to sign in again.

  • Document the Windows 10 22H2 support status for Cowork. If Cowork's virtualization
    service is not supported on Windows 10, the installer should say so up front rather than
    register a service it cannot later clean up.


Working user workaround


Elevated PowerShell / cmd:


sc.exe query  CoworkVMService

sc.exe stop CoworkVMService
sc.exe delete CoworkVMService

Reboot, then re-run the installer. In this log, both runs where the service was absent
(Conflicting service: false) installed successfully in under 20 seconds.


If sc.exe delete also returns access denied, the service DACL must be repaired
(sc.exe sdset) or the removal done from Safe Mode.


Impact



  • Install fails with no actionable diagnostic; the dialog actively misdirects.

  • 247 MB re-downloaded on every retry.

  • User is signed out repeatedly with no stated cause, which is the symptom they perceive
    and report — not the install failure that causes it.

### Error Messages/Logs

```shell

```

### Steps to Reproduce

s

### Claude Model

None

### Is this a regression?

Yes, this worked in a previous version

### Last Working Version

_No response_

### Claude Code Version

s

### Platform

Anthropic API

### Operating System

Windows

### Terminal/Shell

Terminal.app (macOS)

### Additional Information

s

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start with ClaudeSetup.log and the Claude Setup.exe flow around conflicting-service detection, OpenService/DeleteService, and AddPackage. Verify the ControlService stop-and-delete sequence and the failure dialog path. Done means a failed CoworkVMService cleanup stops installation, reports the actual cause and remediation, avoids the misleading elevation message, and handles failed-install credentials as specified.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
powershell
Ambito
operating-systems, release
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.