Fix Windows 11 24H2 Intune Feature Update Error 0xC1900101
0xC1900101 is one of the most common Windows 11 24H2 feature update failures admins see after targeting devices with an Intune Feature Update policy. The Intune report may only show the high-level failure, while the device rolls back during reboot and returns to the previous Windows build.
Treat 0xC1900101 as a driver or setup rollback until proven otherwise. Microsoft documents it as a generic rollback code that can happen at almost any upgrade phase and usually points to an incompatible driver. The exact fix depends on the second code, such as 0xC1900101 - 0x20017, 0xC1900101 - 0x30018, 0xC1900101 - 0x3000D, or 0xC1900101 - 0x40017.
Quick Fix Checklist
Start here before rebuilding the Intune policy:
- Export the failed device row from Reports > Windows Updates > Feature Updates report.
- Confirm whether the device reached OfferReady or actually attempted the 24H2 install.
- Run SetupDiag and collect
SetupDiagResults.log. - Check rollback logs under
C:\$WINDOWS.~BT\Sources\Rollback. - Update BIOS, firmware, storage, display, audio, VPN, dock, and security agent drivers.
- Disconnect unnecessary peripherals and docking hardware for the pilot group.
- Remove stale driver packages from the driver store if SetupDiag or
setupapi.dev.lognames them. - Run
DISMandSFCif logs show component store or servicing corruption. - Verify free disk space; low space codes often appear alongside rollback symptoms.
- Keep Intune update ring feature update deferrals at
0when a Feature Update policy controls the target version.
Root Cause
0xC1900101 means Windows Setup started the upgrade and then rolled back. It is not usually an Intune assignment problem. Intune delivered the targeting, Windows Update offered the feature update, and Windows Setup failed on the device.
Microsoft’s upgrade troubleshooting guidance says 0xC1900101 is frequently observed and usually indicates an incompatible driver. Supplemental logs are often required, especially:
C:\$WINDOWS.~BT\Sources\Rollback\setupmem.dmpC:\$WINDOWS.~BT\Sources\Rollback\*.evtxC:\$WINDOWS.~BT\Sources\Rollback\setupapi\setupapi.dev.log
Common phase codes help narrow the work:
| Error | What it usually means | First action |
|---|---|---|
0xC1900101 - 0x20004 | SAFE_OS failure, often old drivers | Update BIOS and storage drivers |
0xC1900101 - 0x2000C | WinPE/WIM apply issue | Remove peripherals, update drivers, check disk |
0xC1900101 - 0x20017 | Driver illegal operation | Review Panther logs and update or remove named driver |
0xC1900101 - 0x30018 | Driver stopped responding during upgrade | Check setupapi.dev.log and vendor drivers |
0xC1900101 - 0x3000D | FIRST_BOOT/MIGRATE_DATA failure | Focus on display, storage, and migration-blocking drivers |
0xC1900101 - 0x4000D | SECOND_BOOT rollback | Review rollback dump and event logs |
0xC1900101 - 0x40017 | SECOND_BOOT/PRE_OOBE failure | Clean boot, remove security/VPN agents, retry pilot |
Logs and Where to Check
Intune admin center
Use Intune to confirm scope and timing, not just the final code:
- Go to Reports > Windows Updates > Reports tab > Feature Updates report.
- Select the Windows 11 24H2 policy.
- Export the affected device row.
- Check whether the device is blocked, waiting, offered, installed, or failed.
- Confirm no overlapping update ring has feature update deferrals or pause settings.
If the device never reaches the offer stage, troubleshoot policy targeting, prerequisites, safeguards, licensing, and Windows diagnostic data. If the device attempted the upgrade and rolled back, move to setup logs.
Device setup logs
Collect these after the rollback:
C:\$WINDOWS.~BT\Sources\Panther\setupact.log
C:\$WINDOWS.~BT\Sources\Panther\setuperr.log
C:\$WINDOWS.~BT\Sources\Rollback\setupapi\setupapi.dev.log
C:\$WINDOWS.~BT\Sources\Rollback\setupmem.dmp
C:\$WINDOWS.~BT\Sources\Rollback\*.evtx
C:\Windows\Panther\SetupDiagResults.log
C:\Windows\Logs\CBS\CBS.log
C:\Windows\Logs\DISM\dism.log
Event logs
Run this on the failed endpoint:
$logs = @(
'Microsoft-Windows-WindowsUpdateClient/Operational',
'Microsoft-Windows-UpdateOrchestrator/Operational',
'Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Admin'
)
foreach ($log in $logs) {
Write-Host "`n=== $log ==="
Get-WinEvent -LogName $log -MaxEvents 100 |
Where-Object { $_.Message -match '0xC1900101|24H2|rollback|driver|failed|safeguard' -or $_.LevelDisplayName -in @('Error','Warning') } |
Select-Object -First 20 TimeCreated, Id, LevelDisplayName, Message
}
PowerShell Driver Triage
Use this to capture the likely driver suspects before retrying the update:
$Out = 'C:\Temp\24H2-rollback-triage'
New-Item -ItemType Directory -Path $Out -Force | Out-Null
# Driver inventory
pnputil /enum-drivers > "$Out\pnputil-enum-drivers.txt"
driverquery /v /fo csv > "$Out\driverquery.csv"
# Rollback logs if present
$rollback = 'C:\$WINDOWS.~BT\Sources\Rollback'
if (Test-Path $rollback) {
Copy-Item "$rollback\setupapi" -Destination "$Out\setupapi" -Recurse -Force -ErrorAction SilentlyContinue
Copy-Item "$rollback\*.evtx" -Destination $Out -Force -ErrorAction SilentlyContinue
Copy-Item "$rollback\setupmem.dmp" -Destination $Out -Force -ErrorAction SilentlyContinue
}
# Panther logs
$panther = 'C:\$WINDOWS.~BT\Sources\Panther'
if (Test-Path $panther) {
Copy-Item "$panther\setupact.log" -Destination $Out -Force -ErrorAction SilentlyContinue
Copy-Item "$panther\setuperr.log" -Destination $Out -Force -ErrorAction SilentlyContinue
}
Compress-Archive -Path "$Out\*" -DestinationPath "$Out.zip" -Force
Write-Host "Created $Out.zip"
Remediation Workflow
Step 1: Identify the phase code
Do not stop at 0xC1900101. Find the full pair:
- Intune Feature Updates report export
- Windows Update history on the device
SetupDiagResults.logsetuperr.logsetupact.log
The phase code tells you where setup died. For example, 0x30018 points toward a driver that stopped responding during upgrade, while 0x3000D often points at migration data and display/storage driver problems.
Step 2: Run SetupDiag
Run SetupDiag on the affected device after rollback:
New-Item -ItemType Directory -Path C:\Temp\SetupDiag -Force | Out-Null
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?linkid=870142' -OutFile 'C:\Temp\SetupDiag\SetupDiag.exe'
Start-Process 'C:\Temp\SetupDiag\SetupDiag.exe' -ArgumentList '/Output:C:\Temp\SetupDiag\SetupDiagResults.log' -Wait
Get-Content 'C:\Temp\SetupDiag\SetupDiagResults.log'
If the device has no internet access, copy SetupDiag.exe from an admin workstation and run it locally against the saved setup logs.
Step 3: Update or remove the named driver
If SetupDiag or setupapi.dev.log names a driver, remediate that exact package:
# List third-party drivers and published names
pnputil /enum-drivers
# Remove a problematic driver package only after confirming replacement coverage
pnputil /delete-driver oem42.inf /uninstall /force
Be careful with storage, network, VPN, disk encryption, and security drivers. Removing the wrong package can break boot, remote access, or encryption workflows.
Step 4: Repair servicing health
If CBS or DISM logs show corruption, run:
DISM.exe /Online /Cleanup-image /Restorehealth
sfc /scannow
If the device cannot use Windows Update as a repair source, point DISM to a known-good source that matches the current OS build:
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:\\fileserver\repair-source\windows /LimitAccess
Step 5: Retry with a clean pilot condition
For repeat failures:
- Update BIOS and firmware.
- Update OEM driver packs for the exact model.
- Temporarily remove nonessential peripherals and docks.
- Disable or remove problematic VPN/security agents only in a controlled pilot.
- Trigger a Windows Update scan and monitor the next reboot.
UsoClient StartScan
UsoClient StartDownload
UsoClient StartInstall
UsoClient may not print output. Confirm from event logs and Intune reporting.
Prevention
- Pilot Windows 11 24H2 by hardware model, not by department.
- Keep OEM BIOS, firmware, storage, and display drivers current before targeting feature updates.
- Maintain a known-bad driver list from SetupDiag results and block those packages in driver rings.
- Use Intune driver update policies or Autopatch driver management before broad 24H2 rollout.
- Keep feature update deferrals at
0when using Intune Feature Update policies for target version control. - Enable Windows diagnostic data features required for update reporting where your privacy policy allows it.
- Treat safeguard holds as protection, not noise. Investigate before bypassing.
Sources
- Microsoft Learn: Windows upgrade resolution procedures for
0xC1900101 - Microsoft Learn: Resolve Windows upgrade errors and use SetupDiag
- Microsoft Learn: Configure Windows Feature Update Policies in Microsoft Intune
- Microsoft Learn: Manage Windows Feature Updates in Microsoft Intune
- Microsoft Learn: Enable Windows diagnostic data and license verification in Intune
Need more help with Intune? Check our other troubleshooting guides at zakitpro.com/troubleshooting.