Windows 11 upgrade from 23H2 to 25H2 fails with 0xC1900101 / 0x40017 and SAFE_OS MIGRATE_DATA rollback

Dante Martino 0 Reputation points
2026-06-09T20:44:12.32+00:00

Hello,

I’m an IT technician working on upgrading Windows 11 Dell devices from 23H2 to 25H2 across our environment. Most systems upgrade without any issues, but we’ve run into three machines that consistently fail and roll back to 23H2.

During the rollback, we see: “Attempting to restore installation” → “Undoing changes made to your computer”

After logging back in, Windows Setup reports: “We couldn’t install Windows 11”

The problematic devices consist of:
Latitude 7400

Latitude 7420

Optiplex 5070

Other 7400, 7420, and 5070 devices in our environment upgraded to 25H2 without issue, so I do not think the device model is the culprit.

Upgrade method:

  • Windows Installation Assistant (primary method)

What I’ve tried so far on the affected systems:

Installation Assistant upgrade to 25H2

In-place upgrade using mounted 25H2 ISO

Attempted upgrade to 24H2 first (same rollback behavior)

  • Repair install using 23H2 ISO (also fails, but with different error codes)

DISM /RestoreHealth and sfc /scannow

Cleared C:$WINDOWS.~BT

Disk cleanup

  • Removed unused/old drivers
  • Unplugged all peripheral devices

Possibly a few other standard cleanup steps I’m forgetting

Errors observed:

  • 0xC1900101 - 0x40017 “SECOND_BOOT phase – error during BOOT operation” for all 25H2 upgrade attempts.
  • 0x8007042B - 0x2000D “SAFE_OS phase – error during MIGRATE_DATA operation” for the 23H2 repair install test.

Additional log findings:

0x80040154 in setup/update logs

CBS errors (package enumeration / FOD inventory issues)

MIG errors related to plugin registration and migration

Some information online suggests to uninstall third party antivirus software. We are running CrowdStrike Falcon, but other machines with the same setup upgrade without issue, so I’m not convinced that’s the cause.

These systems all have plenty of free space (80GB+), so storage isn’t a factor.

I’ve been stuck on this for a while now. Reimaging will likely fix it, but I’d prefer to avoid that if possible as this introduces more downtime for end users.

Has anyone run into similar upgrade failures and found a root cause? How can this be resolved? Should I just reimage these systems instead of going through this troubleshooting? Why would other devices in my environment upgrade just fine, while others are not despite being the same make and model as those that have succeeded?

Thanks in advance.

Windows for business | Windows Client for IT Pros | Devices and deployment | Install Windows updates, features, or roles

Answer recommended by moderator

Brian Huynh 3,305 Reputation points Microsoft External Staff Moderator
2026-06-11T02:29:07.8533333+00:00

Thank you for providing the setuperr.log,this gives us the detailed insight we need to pinpoint the failure.

Looking through your logs, the Windows installation is hitting a wall during the migration phase (MIG) and is struggling to migrate or remove third-party drivers. The system throws a fatal error, which triggers the "undoing changes" safety rollback.

Here are the specific lines that identify the root cause: Error [0x0808fe] MIG Plugin {...}: Unable to determine inbox status of driver 'oem102.---' for 'ROOT\SYSTEM\0001'. Error = 0x00000002 Error SP Failed to remove INF oem297.inf, Err = 0x3[gle=0x00000003]

Directly following the oem102 error, the log shows a repetitive loop of BthMigLib (Bluetooth Migration Library) entries. This suggests that an incompatible driver—very likely related to a Bluetooth adapter, a virtual system device, or legacy software—is blocking the Windows upgrade.

Because Windows dynamically assigns "oemXXX.inf" names to third-party drivers, we need to find out exactly what software or hardware oem102.inf and oem297.inf belong to, and then remove them before attempting the upgrade again.

Please open an elevated Command Prompt and run the following command to export a list of all your installed third-party drivers to a text file on your C: drive:

pnputil /enum-drivers > C:\DriverList.txt

Next, open File Explorer, navigate to your C: drive, and open DriverList.txt. Search the document for oem102.inf and oem297.inf. Look at the "Provider Name" and "Original Name" listed right below them. This will tell you what devices or software are causing the conflict.

Once you have identified them and confirmed they are not critical storage or display drivers, you can force-remove them. In your elevated Command Prompt, run the following commands:

pnputil /delete-driver oem102.inf /uninstall /force
pnputil /delete-driver oem297.inf /uninstall /force

Note: Using the /force parameter is a destructive action that will uninstall the driver and its associated device. The device will not function until you reinstall a compatible driver after the upgrade.

Before you initiate the 25H2 upgrade again, I also recommend physically disconnecting all non-essential peripherals from your computer, including Bluetooth dongles, USB hubs, external hard drives, and wireless headsets.

If for any reason the upgrade fails again after removing these drivers, please download and run the official Microsoft SetupDiag tool. This tool automatically parses all hidden rollback logs and generates a clean SetupDiagResults.log file that pinpoints the exact failure reason.

Was this answer helpful?

1 person found this answer helpful.

4 additional answers

Sort by: Most helpful
  1. Brian Huynh 3,305 Reputation points Microsoft External Staff Moderator
    2026-06-10T03:03:23.32+00:00

    Hello, thank you for posting in the Microsoft Q&A community.

    Feature update failures generally point to a few common culprits like incompatible device drivers, third-party security software interfering with the installation process, or corruption within the local update components and the installation cache.

    I recommend starting with a standard approach to reset the update environment. We can clear the Windows Update cache and restart the necessary update services. Please open an elevated Command Prompt and execute the following commands one by one to safely rename the cache folders and restart the services:

    net stop wuauserv
    net stop cryptSvc
    net stop bits
    net stop msiserver
    ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
    ren C:\Windows\System32\catroot2 catroot2.old
    net start wuauserv
    net start cryptSvc
    net start bits
    net start msiserver
    

    After running these commands, restart your computer and attempt the upgrade again by navigating to Settings > Windows Update.

    If the update still fails through the standard Windows Update channel, I recommend perform in-place upgrade using the official Windows 11 Installation Assistant or the ISO file. Before proceeding, I advise performing a Clean Boot to ensure no background applications or third-party antivirus software are causing conflicts by typing msconfig in the Start menu, navigating to the Services tab, checking the Hide all Microsoft services box, and then clicking Disable all.

    To properly analyze this issue and provide a permanent fix, I will need a bit more data to isolate the failure. Please enable hidden items in File Explorer, navigate to the path C:$Windows.~BT\Sources\Panther, and look for the setuperr.log file. Sharing the last 20 to 30 lines of this log file in your reply will give us the exact context we need.

    Was this answer helpful?

    1 person found this answer helpful.

  2. Brian Huynh 3,305 Reputation points Microsoft External Staff Moderator
    2026-06-25T07:34:08.3866667+00:00

    Hello again, and thank you for taking the time to share this log snippet.

    I performed an analysis on the new setuperr.log. It is a deep-rooted system corruption rather than just a simple driver conflict.

    Here is exactly what happened on this device to cause the failure:

    1. "Ghost" Driver (Component Store mismatch)

    2026-06-22 14:10:10, Error SP Failed to remove INF oem297.inf, Err = 0x3[gle=0x00000003]
    2026-06-22 14:09:37, Error [0x0808fe] MIG Plugin {...}: BthMigLib: BthMig(V:2 T:1): This device is not a personal device...
    

    Even after you used pnputil to successfully wipe the drivers, the Windows Setup engine still tried to migrate them and failed with Err = 0x3 (Path Not Found). This happens when a "ghost" or hidden device remains present in the registry or Device Manager, expecting a driver that no longer exists in the C:\Windows\System32\DriverStore\FileRepository.

    2. Application Experience & Disk Journal Corruption

    2026-06-22 13:54:51, Error CONX aeinv: ERROR,File::QueryUsn,2264,Exception: 0x80070001 ... 80070001 Incorrect function.##
    

    The aeinv.dll (Application Experience Inventory) module scans installed apps to ensure they are compatible with 25H2. To do this quickly, it queries the NTFS disk's USN journal. The 0x80070001 (Incorrect Function) exception indicates the USN journal is corrupted on this specific machine

    3. Corrupted Windows Side-by-Side (WinSxS) Components

    2026-06-22 14:21:09, Error [0x08038d] MIG Failure while calling IPostApply->ApplySuccess for Plugin={ServerPath="Microsoft-Windows-DirectoryServices-ADAM-Client\adammigrate.dll"... Error: 0x80070002
    

    During the final stages, Setup attempts to migrate the Active Directory Application Mode (ADAM) client. It fails with 0x80070002, which translates to File Not Found. This proves that the underlying Windows Component Store on this device is missing critical system files.

    For this device to upgrade successfully, you would have had to repair disks, rebuild the Component Store, and manually scrub orphaned registry keys for ghost devices. Reimaging is absolutely the most efficient and correct path forward. I hope the reimaging goes smoothly and quickly for your users.

    Was this answer helpful?

    0 comments No comments

  3. Jason Nguyen Tran 21,375 Reputation points Independent Advisor
    2026-06-10T03:06:57.2133333+00:00

    Hello Dante Martino,

    The error codes you’re seeing usually point to driver or migration plugin issues rather than hardware limitations. Even though other devices of the same model upgraded fine, these specific machines may have remnants of outdated drivers or corrupted migration components that block the process.

    Here are a few steps you can try:

    • Fully uninstall any third‑party antivirus or endpoint security agents before attempting the upgrade, then reinstall afterward.
    • Check Device Manager for hidden or non‑present drivers (use “set devmgr_show_nonpresent_devices=1”) and remove stale entries.
    • Run DISM /Online /Cleanup-Image /StartComponentCleanup to clear old component store entries.
    • Review setupact.log and setuperr.log under C:$WINDOWS.~BT\Sources\Panther for specific driver or migration plugin failures.
    • If CBS errors persist, consider removing optional features or language packs temporarily before retrying.
    • As a last resort, performing a clean reimage will resolve the issue, but I understand you’d prefer to avoid downtime.

    These errors are typically tied to software state rather than hardware, so with careful cleanup you should be able to get the upgrade through.

    I hope the response provided some helpful insight. If you find this answer useful, please hit “accept answer” so I know it addressed your concern.

    Jason.

    Was this answer helpful?

    0 comments No comments

  4. AI answer

    2026-06-09T20:44:33.4766667+00:00

    0xC1900101 errors are driver-related, and 0x8007042B-0x4000D / 0x2000D indicate interference from background processes or incompatible software during SAFE_OS and SECOND_BOOT phases. On the affected devices, focus on:

    1. Treat 0xC1900101-0x40017 as a driver/AV issue
    • 0xC1900101 is documented as a driver error.
    • For 0xC1900101 0x20017 / 0x30017, guidance is to:
      • Disable or remove all 3rd party antivirus or antispyware.
      • Disconnect all peripheral devices except mouse, keyboard, and display.
      • Contact the hardware vendor to obtain updated device drivers.
    • Even if other machines with CrowdStrike upgrade successfully, the failing ones may have a specific driver/agent state or filter driver combination that causes a problem during SECOND_BOOT.

    Recommended actions on the failing machines:

    1. Temporarily remove all non-Microsoft security/endpoint agents (CrowdStrike and any others), then retry the upgrade.
    2. Ensure all device drivers (especially storage, chipset, network, and display) are updated from Dell for those specific serial numbers.
    3. Disconnect all nonessential hardware (USB storage, docks, etc.) during the upgrade.
    1. Address background process interference (0x8007042B-0x2000D / 0x4000D)
    • 0x8007042B 0x4000D is documented as Windows Setup terminating unexpectedly due to another process running in the background.
    • The recommended mitigation is to perform a clean boot to minimize third-party services and startup apps that can interfere with SAFE_OS and MIGRATE_DATA.

    Actions:

    1. Perform a clean boot on the affected systems before starting the upgrade. See How to perform a clean boot in Windows.
    2. After clean boot is configured, run the upgrade again (either Installation Assistant or ISO-based setup).
    1. Use the official 0xC1900101 troubleshooting steps For 0xC1900101 on Windows 11, the documented steps are:
    1. Ensure enough free space (already satisfied in this case).
    2. Run Windows Update multiple times and install all available updates, including hardware and third-party drivers. Use the Windows Update Troubleshooter if needed.
    3. Check third-party drivers and download any updates from the hardware manufacturer.
    4. Unplug extra hardware (already done, but keep it in place for all further attempts).
    5. Check Device Manager for devices with yellow exclamation marks and update or uninstall problematic drivers.
    6. Remove third-party security software (covered above).
    7. Repair hard-drive errors with chkdsk /f C: and reboot.
    8. Perform a clean boot.
    9. Restore and repair system files with DISM.exe /Online /Cleanup-image /Restorehealth (already attempted) and then retry.
    1. Use setup logs to pinpoint the failing driver or component
    • For generic 0xC1900101 rollbacks, use setupact.log and setuperr.log under $Windows.~BT\Sources\Rollback.
    • setupapi.dev.log in the same Rollback folder is specifically for device install issues (for example, 0x30018, but also useful for 0xC1900101 driver failures).
    • Event logs (*.evtx) in the Rollback folder can also help identify unexpected reboots or driver-related bug checks.

    On the affected systems:

    1. After a failed upgrade, review:
      • $Windows.~BT\Sources\Rollback\setupact.log
      • $Windows.~BT\Sources\Rollback\setuperr.log
      • $Windows.~BT\Sources\Rollback\setupapi.dev.log
    2. Look for the last driver or service operations before rollback is initiated; that component is the primary suspect (for example, a specific storage, network, or security filter driver).
    3. Once identified, update, disable, or uninstall that driver/software and retry the upgrade.
    1. When to reimage If, after:
    • Removing all third-party security software,
    • Updating or removing problematic drivers identified in the rollback logs,
    • Running a clean boot and disk/system repairs,

    the upgrade still fails with the same codes, the remaining cause is likely deep OS/component store corruption or an unsupported configuration on those specific installations. In that case, reimaging those few systems is a reasonable and supported resolution, especially since most identical models in the environment upgrade successfully.

    The reason some identical models succeed while others fail is typically due to differences in:

    • Driver versions or remnants of old drivers,
    • Installed third-party software (especially security/management agents),
    • Prior update/upgrade history leaving behind corruption or pending operations,
    • Unique device-specific issues (disk errors, prior crashes, or partial updates).

    Using the above steps to normalize drivers and security software, minimize background processes, and analyze rollback logs will usually reveal the specific cause on each failing device. If not, reimaging is the most efficient path.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.