.NET SDK 10.0.201 installer fails with exit code 6 (WiX Burn elevation pipe race condition)
- 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.