dotnet / dotnet/sdk

.NET SDK 10.0.201 installer fails with exit code 6 (WiX Burn elevation pipe race condition)

Open
#53,881 1 comment 0 reactions 1 assignee Claimed by @joeloff View on GitHub
Area-External Area-Install untriaged windows-installer
Dominant language
C#
Stars
3.2k
Forks
1.3k
PR merge metrics
PR metrics pending

Description

### Description

The .NET SDK 10.0.201 Windows x64 installer consistently fails with exit code 6 (`0x80070006` / `ERROR_INVALID_HANDLE`) during the Burn engine elevation phase. The elevated child process launches but fails to complete the named pipe handshake with the parent process.

This does **not** affect .NET 8 SDK installers (which use an older WiX Burn version). It appears to be caused by a race condition in WiX v5.0.2 Burn engine, tracked upstream as [wixtoolset/issues#9001](https://github.com/wixtoolset/issues/issues/9001).

### Reproduction

1. Windows 11 Enterprise 10.0.26200
2. Open an **elevated** Administrator terminal (verified via `[Security.Principal.WindowsPrincipal]` check)
3. Run: `winget install --id Microsoft.DotNet.SDK.10`
4. Installer fails with exit code 6

Also reproduces when running the exe directly:
Start-Process "dotnet-sdk-10.0.201-win-x64.exe" -Verb RunAs -Wait

### Log evidence

**Parent process log** — pipe wait fails:
[2026-04-14T14:42:54]i010: Launching elevated engine process.
[2026-04-14T14:42:54]i011: Launched elevated engine process.
[2026-04-14T14:42:54]e000: Error 0x80070006: Failed to wait for child to connect to pipe.
[2026-04-14T14:42:54]e000: Error 0x80070006: Failed to connect to elevated child process.
[2026-04-14T14:42:54]e000: Error 0x80070006: Failed to actually elevate.
[2026-04-14T14:42:54]e000: Error 0x80070006: Failed to elevate.
[2026-04-14T14:42:54]i399: Apply complete, result: 0x80070006, restart: None

**Elevated child log** — pipe verification fails:
[2026-04-14T14:42:54]i001: Burn x86 v5.0.2+dc67792d077edc24f5b197d5bd13a71e921b9396
[2026-04-14T14:42:54]i009: Command Line: '-q -burn.elevated ***** ***** *****'
[2026-04-14T14:42:54]e000: Error 0x8007006d: Failed to read size of verification secret from parent pipe.
[2026-04-14T14:42:54]e000: Error 0x8007006d: Failed to verify parent cache pipe: BurnPipe.{A883A853-7943-4259-B069-C2341825B38F}.Cache
[2026-04-14T14:42:54]e000: Error 0x8007006d: Failed to connect to unelevated process.
[2026-04-14T14:42:54]e000: Error 0x8007006d: Failed to run elevated mode.

### Impact

- Reproduces **100% of the time** on the affected machine — not intermittent
- Blocks installation of .NET 10 SDK via the standard installer and winget
- .NET 8 SDK installs fine via the same methods (uses older WiX Burn)
- The upstream WiX issue notes the bug disappears with a debugger attached, confirming a timing-dependent race condition

### Workaround

Install .NET 10 SDK using `dotnet-install.ps1` (bypasses WiX Burn entirely):
```powershell
Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile dotnet-install.ps1
./dotnet-install.ps1 -Channel 10.0 -InstallDir 'C:\Program Files\dotnet' -Architecture x64
```

### Environment

- Windows 11 Enterprise 10.0.26200
- Installer: dotnet-sdk-10.0.201-win-x64.exe
- WiX Burn: v5.0.2+dc67792d077edc24f5b197d5bd13a71e921b9396
- Upstream bug: https://github.com/wixtoolset/issues/issues/9001

### Suggested action

Consider documenting this as a known issue in the https://github.com/dotnet/core/blob/main/release-notes/10.0/known-issues.md with the dotnet-install.ps1 workaround, since the upstream WiX fix may take time and the issue is difficult to discover from .NET-specific search terms.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.