Use the Windows Setup compatibility scan logs, not only the standard Windows Update logs. A readiness block that says the device does not meet requirements can come from incompatible apps, drivers, or upgrade safeguards, and the compatibility logs are the place to identify the exact blocker.
- Check the Setup result code first.
-
0xC1900208= incompatible application or driver is blocking the upgrade. -
0xC1900210= no compatibility issues were found.
-
- Open the compatibility logs in the hidden Panther locations.
-
C:\$WINDOWS.~BT\Sources\Panther\CompatData<date-time>.xml -
C:\Windows\Panther - Search the OS drive for
*_APPRAISER_HumanReadable.xmlUse the newest timestamped file.
-
- In
CompatData<date-time>.xml, search for the exact blocking type.- Search for
BlockingType="Hard"under the<Programs>section. This identifies applications that must be removed or mitigated before the upgrade can continue. - Search for
//DriverPackages/DriverPackage[@BlockMigration="True"]. This identifies drivers that will not migrate and must be updated or removed.
- Search for
- In
*_APPRAISER_HumanReadable.xml, identify the exact file path causing the block.- Search for
DT_ANY_FMC_BlockingApplication=True - Then look nearby for
LowerCaseLongPathUnexpandedThat property gives the exact path to the blocking artifact, including leftover.exeor.dllfiles from software that may already have been uninstalled.
- Search for
- Remediate based on what the log shows.
- If it is an application block, uninstall the app or upgrade it to a compatible version.
- If the log points to leftover files from an already removed app, remove the indicated file.
- If it is a driver block, update or remove the driver.
- Refresh setup state before retrying with the same media.
- Empty
C:\Windows\SoftwareDistribution\Download - If not needed, empty
C:\$WINDOWS.~BTNote: deleting cached setup files can remove diagnostic artifacts needed for later review.
- Empty
- Re-run a compatibility-only scan to separate compatibility findings from the full upgrade workflow.
Run from an elevated Command Prompt:
This generates fresh compatibility results without running the full upgrade.setup.exe /auto upgrade /noreboot /eula accept /compat scanonly /compat ignorewarning - Confirm whether the issue is cleared.
- If the next scan returns
0xC1900210, compatibility checks passed. - If it still returns
0xC1900208, review the logs again for additional blockers.
- If the next scan returns
- For fleet-wide analysis, use SetupDiag.
SetupDiag parses Windows Setup logs and maps them to known rules such as
CompatBlockedApplication, which helps distinguish whether the block is caused by an application, driver, or another setup rule. Example:SetupDiag.exe /LogsPath "C:\Temp\WindowsSetupLogs" /Output "C:\Temp\SetupDiag-Results.txt" - If the devices are managed through Intune feature updates, also review compatibility reporting there. The Windows feature update compatibility risks report can show affected devices and classify issues such as:
- blocking upgrade
- blocking upgrade, update application to newest version
- driver won't migrate to new OS
- safeguards
For distinguishing hardware limitations from policy or configuration issues:
- Use Windows 11 readiness reporting in Endpoint analytics to verify whether devices meet minimum hardware requirements.
- If devices do not meet Windows 11 minimum requirements, they will remain on their current Windows 10 version unless configured to receive the latest Windows 10 feature update instead.
- If hardware is eligible but the compatibility logs show
BlockingType="Hard",BlockMigration="True", or a SetupDiag rule such asCompatBlockedApplication, the issue is an app, driver, or configuration blocker rather than a hardware minimum requirement failure. - If Intune compatibility reporting shows a safeguard hold, that indicates a known compatibility protection rather than a raw hardware shortfall.
References: