Windows 11 Upgrade Keeps Rolling Back (0xC1900101)? Use SetupDiag to Find the Real Cause
Your Windows 11 feature update or upgrade climbs to a high percentage, then reverts with “We couldn’t install Windows 11” / “The installation failed in the SAFE_OS phase” and error 0xC1900101 (you’ll see variants like 0x20017, 0x30018, 0x4000D, 0x40017).
Why generic fixes waste your time: 0xC1900101 isn’t the problem — it’s a wrapper meaning “setup rolled back.” So content farms list a shotgun: disable antivirus, free up space, update everything, unplug USB. You might get lucky, but you’re guessing. The error is almost always a specific driver that fails to migrate, and Windows already logged exactly which one.
The real tool: SetupDiag. It’s Microsoft’s free diagnostic that parses the setup logs (in $Windows.~bt\Sources\Panther) and tells you the named failing rule — the blocking driver, the phase it died in, or the migration error — so you fix the actual cause.
Fix 1: Run SetupDiag and read the result
- Download SetupDiag from Microsoft and run
SetupDiag.exeas administrator (right after a failed upgrade, so the logs are still present). - Open the report it writes —
SetupDiagResults.log(andSetupDiag.xml) in the same folder. - Read the “Error:” / failing rule section. It typically names a driver (.sys) or a specific failure like a disabled/incompatible driver or an antivirus filter.
- Fix what it names — usually: update or uninstall that driver before retrying the upgrade.
This single step replaces an afternoon of guessing.
Fix 2: Act on the most common SetupDiag findings
- A named graphics/storage/network driver → install the latest from the hardware vendor, or uninstall it in Device Manager, then retry.
- Antivirus filter driver → fully uninstall third-party AV (not just disable), upgrade, reinstall after.
0x4000D(SECOND_BOOT phase migration) → usually a driver/app that can’t migrate; SetupDiag names it.0x20017(SAFE_OS, boot driver) → a boot-critical driver failed; update chipset/storage drivers.
Fix 3: The general hygiene that genuinely helps
Before re-running setup:
- Free up 20+ GB on the system drive.
- Disconnect non-essential USB devices and secondary drives.
- Update the BIOS/UEFI and chipset drivers.
- Reset Windows Update components if downloads themselves are flaky (see the “undoing changes” / failed-update guide).
FAQ
Where are the logs if SetupDiag finds nothing? Look in C:\$Windows.~bt\Sources\Panther and C:\Windows\Panther for setuperr.log and setupact.log — SetupDiag reads these; if they’re gone, re-run the failing upgrade so they regenerate, then run SetupDiag immediately.
Is 0xC1900101 a hardware failure? Almost never — it’s a software/driver migration block. WHEA hardware errors show different codes (see WHEA_UNCORRECTABLE_ERROR).
Sources: Microsoft Learn — SetupDiag, Microsoft Learn — Resolve Windows upgrade errors