Skip to content
October 12, 2026 • Mid-Level (3-5 years) Error Reference

Feature Update Error 0xC1900208: Fix Compat App Block

By Last updated

Feature update error 0xC1900208 (MOSETUP_E_COMPAT_INSTALLREQ_BLOCK) means Setup found a hard compat block. Read CompatData XML and fix the app or driver.

Quick answer

0xC1900208 is MOSETUP_E_COMPAT_INSTALLREQ_BLOCK. Windows Setup found an actionable compatibility issue, usually an incompatible app or driver, and stopped before installing the feature update. Open the newest CompatData*.xml under C:\$WINDOWS.~BT\Sources\Panther, search for BlockingType="Hard" or DriverPackage BlockMigration="True", remove or update what it names, clear setup caches, then retest with setup.exe /compat scanonly until you get 0xC1900210.

Free PDF

Top 10 Intune and Autopilot Enrollment Errors: Causes and Fixes

A free cheat sheet covering ten enrollment errors, each with the symptom, the most likely cause, the fix, and a link to the full guide.

  • Ten real error codes and failures, including 0x80180014, 0x8018002b, 0x801c03f3, 0x800705b4, the ODJConnector logon failure, and the Win32 detection error 0x87d1041c.
  • Every cause and fix checked against Microsoft's own documentation.
  • A link from each entry to the full zakitpro.com article.

You get the free PDF. By subscribing you also agree to receive occasional emails from zakitpro about Intune and Autopilot troubleshooting. Emails are sent through MailerLite. You can unsubscribe anytime with the link in every email. See the privacy page for how your email is handled.

Step-by-step guide

Feature Update Error 0xC1900208: Fix Compat App Block

A Windows feature update stops with 0xC1900208 before the device reboots into the new build. Intune may show an Incompatible alert on the Feature update failures report. Windows Update may only say the upgrade could not continue. Microsoft names this code MOSETUP_E_COMPAT_INSTALLREQ_BLOCK: Setup found an actionable compatibility issue, such as an incompatible app, and will not proceed until you clear it.

Do not start with driver rollback work or safeguard-hold hunts. Setup already ran the compatibility scan and recorded a hard block. Read the CompatData XML, fix what it lists, and prove a scan-only run returns 0xC1900210 before you retry the full feature update.

Quick Fix checklist

  1. Confirm the failure code is 0xC1900208 (or that a /compat scanonly run returned it), not 0xC1900101, 0xC1900200, 0xC190020E, or a safeguard hold with no install attempt.
  2. In Intune, open Reports > Windows Updates > Windows Feature Update Report or Devices > Monitor > Feature update failures. If the alert is Incompatible, Microsoft tells you to review ScanResult.xml for Block Type=Hard.
  3. On the device, show hidden items and open the newest C:\$WINDOWS.~BT\Sources\Panther\CompatData*.xml.
  4. Search for BlockingType="Hard" under Programs. Note the program Name and Id.
  5. Search for DriverPackage entries with BlockMigration="True". Note the INF name.
  6. Search the newest *_APPRAISER_HumanReadable.xml for DT_ANY_FMC_BlockingApplication=True, then read the nearby LowerCaseLongPathUnexpanded value for the exact file path.
  7. Uninstall or upgrade the named app or driver. If the app is already gone, delete the leftover file the human-readable log points to.
  8. Empty C:\Windows\SoftwareDistribution\Download. If you do not need the files in C:\$WINDOWS.~BT, empty that folder too.
  9. Retest with a scan-only Setup run. Success for the compat scan is 0xC1900210. If you still get 0xC1900208, read the new logs for another blocker.
  10. Only after the scan is clean, retry the Intune feature update or media-based upgrade.

What 0xC1900208 means in Microsoft’s words

Microsoft’s upgrade error codes table lists:

Result codeMessageDescription
0xC1900210MOSETUP_E_COMPAT_SCANONLYSetup didn’t find any compat issue
0xC1900208MOSETUP_E_COMPAT_INSTALLREQ_BLOCKSetup found an actionable compat issue, such as an incompatible app
0xC1900204MOSETUP_E_COMPAT_MIGCHOICE_BLOCKThe migration choice selected isn’t available
0xC1900200MOSETUP_E_COMPAT_SYSREQ_BLOCKThe computer isn’t eligible for Windows 10
0xC190020EMOSETUP_E_INSTALLDISKSPACE_BLOCKThe computer doesn’t have enough free space to install

The resolution-procedures list uses the same code with a shorter description: “The system does not pass the compat scan to install the update.”

Microsoft’s compatibility-scan guide is direct about symptoms: Setup fails with 0xC1900208 because an application or driver is not compatible with the target feature update. You can hit this even when the incompatible application or driver was already uninstalled. Leftover files still trip the appraiser.

When you run Setup with /Compat ScanOnly, Microsoft documents these exit codes:

  • 0xC1900210 if no compatibility issue is found
  • 0xC1900208 if actionable compatibility issues (for example, apps) are found
  • 0xC1900204 for an unavailable migration choice
  • 0xC1900200 if the machine is not eligible
  • 0xC190020E if free disk space is insufficient

Treat 0xC1900208 and 0xC1900210 as opposites on the same scan: one means Setup found a hard problem, the other means the scan is clean.

Why the obvious diagnosis can be wrong

You treat it like 0xC1900101

0xC1900101 is a generic rollback after Setup already started the upgrade. Microsoft usually ties it to an incompatible driver that caused a hang, bug check, or unexpected reboot during SAFE_OS, FIRST_BOOT, or SECOND_BOOT. With 0xC1900208, Setup stopped in the compatibility phase. Rebuilding drivers for a rollback you never reached wastes time. If you need the rollback path, use Fix Windows 11 24H2 Intune feature update error 0xC1900101.

You assume the app is gone, so the block is gone

Microsoft’s compat-scan article says you can see 0xC1900208 after the incompatible application or driver was already uninstalled. The human-readable appraiser log often names a leftover .exe or .dll. Uninstall alone is not enough when the file remains.

You chase Intune targeting instead of the named blocker

Devices that never leave Offering may be on a safeguard hold or stuck earlier in the 25H2 feature update failure path. 0xC1900208 means Setup got far enough to run the compat scan and fail it. Fix the named app or driver before you rewrite feature update policies.

You confuse adjacent compat codes

  • 0xC1900200: hardware or edition eligibility, not an app list
  • 0xC190020E: free disk space
  • 0xC1900209: the user cancelled because the machine did not pass the compat scan (applications cannot migrate)
  • 0xC1900210: scan-only success, not a failure

If the hex code is 0xC1900208, start in CompatData, not in sysreq or disk-space workflows.

Quiet mode turns a dismissible warning into a hard block

SetupDiag documents CompatBlockedApplicationDismissable: when Setup runs in /quiet mode, dismissible application messages become blocks unless the command line also includes /compat ignorewarning. Enterprise feature updates from Windows Update and Intune often run non-interactively, so a warning that a user could click past on media can stop a managed rollout.

Evidence to collect

CompatData XML (primary)

During Downlevel, OOBE, or Rollback, Setup writes:

C:\$WINDOWS.~BT\Sources\Panther\CompatData<date-time>.xml

After OOBE, also check C:\Windows\Panther. Use the newest timestamp. These folders are hidden; enable Hidden items in File Explorer.

Open the newest CompatData file and search for:

  • BlockingType="Hard" under <Programs> / <Program>: apps you must remove or mitigate
  • //DriverPackages/DriverPackage[@BlockMigration="True"]: drivers that will not migrate and must be upgraded or removed

Microsoft’s example Program node looks like this shape (names vary by device):

<Program Name="Some Wallpaper Apps may be incompatible" Id="{3eb4353f-e9c5-44b4-97c6-a07df49c5803}" DefaultIcon="True">
  <CompatibilityInfo BlockingType="Hard" StatusDetail="WarnUpgrade" Message="Your PC has an app that changes the Window Desktop or Wallpaper and it may be incompatible with this version of Windows. This app may..."/>
</Program>

APPRAISER human-readable XML

Search the OS drive for *_APPRAISER_HumanReadable.xml. In the newest file:

  1. Find DT_ANY_FMC_BlockingApplication=True (or Value="TRUE").
  2. Nearby, read LowerCaseLongPathUnexpanded for the exact blocking file path.

Delete that path when Add/Remove Programs no longer lists the app.

SetupDiag

Microsoft’s compat-scan guide recommends SetupDiag for scale and for mapping logs to known rules such as CompatBlockedApplication. SetupDiag ships with Windows Setup and can also be downloaded. Run it elevated. Example offline-style command from Microsoft’s guide:

SetupDiag.exe /LogsPath "C:\Temp\WindowsSetupLogs" /Output "C:\Temp\SetupDiag-Results.txt"

Rules that matter for this code family include:

RuleWhat it means
CompatBlockedApplicationAutoUninstallAn application must be uninstalled before Setup continues
CompatBlockedApplicationManualUninstallAn app without an Add/Remove Programs entry blocks Setup; remove its files manually
CompatBlockedApplicationDismissableA dismissible app warning became a hard block under /quiet
HardblockDeviceOrDriverA loaded driver is incompatible with the target OS
GatedCompatBlockA temporary soft block until a fix ships

When SetupDiag reports multiple failures, Microsoft says the last failure in the log is typically the fatal one.

Intune Feature update failures report

Path: Devices > Monitor > Feature update failures (also reachable from Reports > Windows Updates).

For alert Incompatible, Microsoft’s recommendation is: “Review the ScanResult.xml file for Block Type=Hard.” That matches the CompatData BlockingType="Hard" search above. Other alerts (DiskFull, SafeguardHold, RollbackInitiated) belong in different articles.

Client-side feature update report data needs diagnostic data collection configured. Service-side offer and alert data can show up sooner.

AppCompatFlags registry (context only)

Microsoft notes that the Compatibility Appraiser writes under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags and runs as the scheduled task \Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser. Use this to confirm appraiser health, not as the first place to hunt the blocker name.

Remediation workflow

  1. Name the blocker from logs before changing the device. Write down Program Name/Id, INF, or file path.
  2. Remove or upgrade the app or driver. Prefer vendor-supported upgrade when the product is still required.
  3. Delete leftover files when the human-readable log still shows DT_ANY_FMC_BlockingApplication=True after uninstall.
  4. Clear caches if you will reuse the same media or a stuck $WINDOWS.~BT tree:
    • Empty C:\Windows\SoftwareDistribution\Download
    • Empty C:\$WINDOWS.~BT if you do not need those files
  5. Refresh compat intelligence with Dynamic Update so Setup has current appraiser data (Microsoft links this from the compat-scan guide).
  6. Scan only, without installing:
setup.exe /auto upgrade /noreboot /eula accept /compat scanonly /compat ignorewarning

Microsoft documents that /Compat ScanOnly returns 0xC1900210 when clean and 0xC1900208 when actionable issues remain. /compat ignorewarning keeps dismissible messages from becoming quiet-mode blocks while you inventory hard blocks.

  1. Re-read the new CompatData and appraiser logs. Repeat until the scan returns 0xC1900210.
  2. Retry the real feature update from Intune or from media only after the scan is clean.

I have not executed these Setup commands on a production device in this run. Treat them as Microsoft-documented commands to run in your lab or pilot ring first.

What not to waste time on

  • Rebuilding the Intune feature update profile while CompatData still shows BlockingType="Hard".
  • Full OS reimages for a single named leftover .exe.
  • Driver rollback deep-dives aimed at 0xC1900101 when Setup never left the compat phase.
  • Ignoring a second hard block after you clear the first; Microsoft tells you to recheck logs if 0xC1900208 returns.

Prevention

  • Run /compat scanonly (with /CopyLogs if you need a central share) against a pilot hardware and app ring before broad Intune feature update rings.
  • Keep required line-of-business apps on vendor versions that support the target Windows feature update; retire or replace apps that only appear as hard blocks.
  • Remove abandoned security, VPN, wallpaper, and virtualization leftovers that leave files behind after uninstall.
  • Keep Dynamic Update enabled for feature updates so appraiser data stays current.
  • In Intune, watch Feature update failures for Incompatible early instead of waiting for help-desk tickets.
  • Keep a short internal list of apps that hard-block your target build so the next ring does not rediscover them device by device.

Sources

Free PDF

Top 10 Intune and Autopilot Enrollment Errors: Causes and Fixes

A free cheat sheet covering ten enrollment errors, each with the symptom, the most likely cause, the fix, and a link to the full guide.

  • Ten real error codes and failures, including 0x80180014, 0x8018002b, 0x801c03f3, 0x800705b4, the ODJConnector logon failure, and the Win32 detection error 0x87d1041c.
  • Every cause and fix checked against Microsoft's own documentation.
  • A link from each entry to the full zakitpro.com article.

You get the free PDF. By subscribing you also agree to receive occasional emails from zakitpro about Intune and Autopilot troubleshooting. Emails are sent through MailerLite. You can unsubscribe anytime with the link in every email. See the privacy page for how your email is handled.

#0xC1900208 #Windows feature update #CompatData #SetupDiag #Intune