Skip to content
!
Glitchary
the field guide to failure
0xC19001016 troubleshooting steps3 sources linked

Windows error 0xC1900101? The extend code is the diagnosis

Fix a Windows upgrade that rolls back with 0xC1900101: Microsoft calls it a generic rollback code, and the extend code beside it — 0x20017, 0x30018, 0x40017 — names the phase that failed and the fix.

By Glitchary · Updated · 9 min read

The short version

  1. 01Write down the full code including the extend code — without it nothing narrows.
  2. 02Read setuperr.log in %windir%\Panther, or SetupDiag’s results, for the named driver.
  3. 03Disconnect every peripheral except mouse, keyboard and display, then retry.
  4. 04Clean boot before starting setup, which addresses most of the extend codes at once.
  5. 05Uninstall third-party antivirus for the upgrade, then reinstall it afterwards.
  6. 06Accept “Download and install updates (recommended)” on the retry.

Start here

The four digits after the code are the real diagnosis

0xC1900101 on its own tells you almost nothing — Microsoft calls it a generic rollback code, thrown when an upgrade fails and Windows puts the old version back. What identifies the problem is the extend code beside it, such as 0xC1900101 - 0x20017 or 0xC1900101 - 0x30018, because each one names the phase the upgrade died in and points at a different remedy. Microsoft’s underlying cause for nearly all of them is the same: an incompatible driver. Write down the full code, then work the specific row rather than trying everything.

Applies to: Windows 10 and Windows 11 feature updates and in-place upgrades that roll back with result code 0xC1900101, whether run from Windows Update, the Installation Assistant, mounted media or an ISO. The extend-code table Microsoft publishes was written for Windows 10 upgrades and applies to the same setup engine used since.

Which extend code did you get?

An upgrade that runs for an hour, restarts, then announces it is restoring your previous version of Windows is the most demoralising failure Windows produces, and 0xC1900101 is what it usually reports afterwards. The good news is that the rollback is safe by design — your old installation comes back intact. The bad news is that the code is deliberately generic, so anyone who tells you what 0xC1900101 means without asking for the extend code is guessing.

1. Get the full code before you change anything

Microsoft’s guidance is to write down the error code that is displayed, or to find it in the Windows Event Log or in the Windows Setup log files — setuperr.log is the one named specifically. The setup logs live in %windir%\Panther, and setuperr.log is the short one: it contains only the errors, which makes it far quicker to read than setupact.log beside it.

Microsoft also publishes a free tool, SetupDiag, that reads those logs and tries to name the root cause for you. It is included with Windows Setup and, when an upgrade fails, it runs automatically and writes its analysis to %WinDir%\Logs\SetupDiag\SetupDiagResults.xml. Running the latest version by hand from an elevated Command Prompt is worthwhile because the rule set is updated over time; it needs .NET Framework 4.7.2 or newer.

One detail from Microsoft’s SetupDiag documentation saves a lot of wasted effort: when SetupDiag reports multiple failures, the last failure in the log file is typically the fatal error, not the first one. Reading from the top and fixing the first thing you see is the most common way to spend an evening on the wrong problem.

0xC1900101 is a generic rollback code. Without the extend code you are choosing between six different remedies at random.

2. SafeOS failures: 0x20017, 0x2000c, 0x20004

These fail early, in the phase that runs from the temporary boot environment rather than from your installed Windows. Microsoft describes 0xC1900101 - 0x20017 as a driver having caused an illegal operation, with Windows unable to migrate the driver — a SafeOS boot failure typically caused by drivers or non-Microsoft disk encryption software, and one that can also indicate a hardware failure.

The mitigation Microsoft gives for 0x20017 is specific and worth following literally: make sure all drivers are updated, then open setuperr.log and setupact.log in the %windir%\Panther directory and locate the problem drivers, then update or uninstall them. That is a genuinely different instruction from the usual advice to update everything, and the log is what makes it targeted.

For 0x2000c, Microsoft describes an unspecified error during Wim apply in the WinPE phase, again caused by out-of-date drivers, and adds that it can also be caused by disk corruption — so running a disk check is part of the answer here. For 0x20004 the mitigation list is uninstall antivirus applications, remove all unused SATA devices, remove unused devices and drivers, and update drivers and BIOS.

0x20017

Read the Panther logs for the named driver. Encryption software is a frequent culprit.

0x2000c

Out-of-date drivers or disk corruption. Run a disk check and disconnect extra devices.

3. First-boot failures: 0x30018 and 0x3000D

0xC1900101 - 0x30018 means a device driver stopped responding to setup.exe during the upgrade. Microsoft’s mitigation is blunt and effective: disconnect all peripheral devices connected to the system except the mouse, keyboard and display, contact your hardware vendor for updated device drivers, and make sure the “Download and install updates (recommended)” option is accepted at the start of the upgrade.

That last instruction is the one people skip. Accepting updates during setup lets Windows fetch a newer driver or a compatibility fix before it commits to the upgrade, and declining it to save time is a reliable way to hit the same rollback again. Take the slower path on the retry.

0x3000D is narrower: Microsoft says installation failed during the FIRST_BOOT phase while attempting the MIGRATE_DATA operation, and that it can occur because of a problem with a display driver. Disconnect peripherals, then update or uninstall the display driver — on a desktop with a discrete graphics card, falling back to the basic display driver for the duration of the upgrade is a reasonable move.

Microsoft also notes that when a rollback happens during the sysprep operation, meaning extend code 0x30018, the device install log is the useful one: $Windows.~bt\Sources\Rollback\setupapi\setupapi.dev.log.

4. Second-boot failures: 0x4000D and 0x40017

0xC1900101 - 0x40017 is the one to know about, because Microsoft is unusually direct about the cause: the upgrade failed after the second reboot, caused by a faulty driver — for example antivirus filter drivers or encryption drivers. The mitigation is to clean boot into Windows and then attempt the upgrade, and again to select “Download and install updates (recommended)”.

A clean boot starts Windows with only Microsoft services and no third-party startup programs, which is why it works here: filter drivers from security software insert themselves into the file system and can block setup from writing the changes it needs. Microsoft’s article documents one such case in detail — a Citrix filter driver that prevented the upgrade from writing to disk, so the upgrade could not complete and the system rolled back.

0x4000D is the debugging one. Microsoft says a rollback occurred due to a driver configuration issue during the MIGRATE_DATA operation, and directs you to the rollback log in $Windows.~BT\Sources\Rollback, checking for a setupmem.dmp file and for the stop code. If you are not going to debug a memory dump, Microsoft’s basic list is: make sure there is enough disk space, disable or update any driver named in the bug check message, try changing video adapters, check for BIOS updates, and disable BIOS memory options such as caching or shadowing.

Uninstalling third-party antivirus for the duration of an upgrade is a normal, temporary step. Reinstall it afterwards.

5. The measures that help across every extend code

Microsoft’s general advice for 0xC1900101, before any extend code is considered, is to run setup with a minimal set of drivers and startup programs by performing a clean boot before starting the upgrade. If you only do one thing from this page, do that — it addresses the cause behind most of the rows above at once.

Disk space is a genuine blocker rather than a formality. Microsoft’s own figures for related space errors are 16 GB free for a 32-bit installation and 20 GB for a 64-bit one, and an upgrade that runs out of room mid-flight rolls back exactly like a driver failure does. Free the space before you retry rather than hoping.

Strip the machine back for the attempt. Disconnect docks, external drives, printers, capture devices and anything else that installs a driver, leaving mouse, keyboard and display. Microsoft repeats that instruction across four separate extend codes, which is a fair signal about how often peripherals are the answer. You can plug everything back in once the upgrade is in.

If the upgrade keeps failing from Windows Update, running it from mounted installation media is a reasonable next step rather than an act of desperation — it takes the download path out of the picture and leaves only the upgrade itself.

6. What to gather before asking for help

The single most useful thing you can bring is the full code including the extend code, because without it nobody can narrow anything down. After that: what SetupDiag reported, which drivers the Panther logs named, whether a clean boot was attempted, and what hardware was connected at the time.

Keep the logs. The rollback deletes a lot of state on the next successful upgrade, and $Windows.~BT\Sources\Rollback plus %windir%\Panther are small enough to copy somewhere safe in seconds. SetupDiag can be pointed at a copied folder later with its /LogsPath parameter, which means a failure captured today is still diagnosable next week.

When you contact Microsoft, give the full result and extend code, the Windows version you are upgrading from and to, whether the machine has third-party antivirus or disk encryption, whether peripherals were disconnected and a clean boot performed, and how much free space the system drive had. Those five answers separate a driver from a filter driver from a space problem from a hardware fault.

Frequently asked questions

What does error 0xC1900101 mean?

Microsoft calls it a generic rollback code — it means the upgrade failed and Windows restored the previous version, and usually indicates an incompatible driver. On its own it doesn’t identify the problem. The extend code that follows it, such as 0xC1900101 - 0x20017, names the phase that failed and is what determines the fix.

Where do I find the extend code if I missed it?

In the Windows Event Log, or in the setup logs at %windir%\Panther — setuperr.log holds only the errors, so it’s the quicker read. SetupDiag also runs automatically after a failed upgrade and writes its analysis to %WinDir%\Logs\SetupDiag\SetupDiagResults.xml.

Why does the upgrade roll back after the second restart?

That pattern is 0xC1900101 - 0x40017, which Microsoft attributes to a faulty driver — specifically naming antivirus filter drivers and encryption drivers. The documented mitigation is to clean boot into Windows, accept “Download and install updates (recommended)”, and run the upgrade again.

Should I uninstall my antivirus to upgrade Windows?

Temporarily, yes — Microsoft lists uninstalling antivirus applications as the mitigation for 0xC1900101 - 0x20004 and names antivirus filter drivers as a cause of 0x40017. Windows Defender takes over while third-party protection is absent, and you reinstall the other product once the upgrade has completed.

Does disconnecting peripherals really help?

Often. Microsoft repeats the instruction across several extend codes: disconnect all peripheral devices except the mouse, keyboard and display. Docks, external drives, printers and capture devices all install drivers, and an unmigratable driver is the most common single cause of this rollback.

How much free space does the upgrade need?

Microsoft’s figures for the related space errors are 16 GB free for a 32-bit installation and 20 GB for a 64-bit one. An upgrade that runs out of room part-way through rolls back the same way a driver failure does, so free the space before retrying rather than hoping it squeezes in.

Sources and review notes

Checked on . Compiled by Glitchary from Microsoft’s Learn documentation, principally the Windows 10 upgrade resolution procedures article and its extend-code table. That table was written for Windows 10 upgrades and describes the setup engine still in use; behaviour and log locations can differ on newer releases. Third-party products named here are Microsoft’s examples, not ours. Glitchary is independent of Microsoft.

Tags

windowswindows-11feature-updatedriverserror-code