When you run setup.exe from a Windows 11 installation media to perform an in-place upgrade, the process may stop with a message that the PC cannot be upgraded due to compatibility holds. These holds block the upgrade because Windows Setup detects a driver, application, or hardware component that is not compatible with the target build. In many cases, the actual incompatibility is minor or no longer present, but the hold remains cached. This article explains why compatibility holds occur, how to clear them from the registry, and how to bypass the block safely using command-line switches.
Key Takeaways: Clearing Compatibility Holds for a Successful In-Place Upgrade
- Registry path HKEY_LOCAL_MACHINE\SYSTEM\Setup\Upgrade\Downlevel: Stores compatibility hold entries that can be deleted to remove the block.
- setup.exe /Auto Upgrade /Quiet /NoReboot /Compat IgnoreWarning: Command-line switch that bypasses non-critical compatibility holds during the upgrade.
- Windows Setup log file Panther\setupact.log: Contains detailed error codes that identify which specific hold is blocking the upgrade.
Why Compatibility Holds Block an In-Place Upgrade on Windows 11
Windows Setup runs a compatibility scan before copying any files. It checks installed drivers, third-party software, and system firmware against a list of known incompatibilities for the target build. If the scan finds a match, Setup writes a hold entry to the registry and displays a message that the upgrade cannot continue.
Compatibility holds fall into two categories. Hard holds block the upgrade unconditionally. They appear when a driver or application is known to cause data loss or system instability on the new build. Soft holds are warnings about items that might cause minor issues, such as a deprecated app or an unsigned driver. Setup treats soft holds as blocks unless you explicitly override them.
The most common cause of a false positive hold is a stale entry left over from a previous upgrade attempt or a driver that was updated after the hold was created. The registry stores the hold data in a cache that Setup does not automatically refresh. Deleting the cache or bypassing the scan allows the upgrade to proceed.
Steps to Clear Compatibility Holds and Run the In-Place Upgrade
Two methods work for removing compatibility holds. The first method deletes the hold cache from the registry so Setup rescans the system fresh. The second method uses a Setup command-line switch to ignore soft holds during the upgrade. Use the first method when you want a clean scan. Use the second method when you are certain the hold is a false positive and want to skip the check entirely.
Method 1: Delete the Compatibility Hold Cache from the Registry
- Open Registry Editor
Press Windows + R, type regedit, and press Enter. Click Yes in the User Account Control prompt. - Navigate to the Downlevel key
Go to HKEY_LOCAL_MACHINE\SYSTEM\Setup\Upgrade\Downlevel. If the Downlevel key does not exist, create it by right-clicking Upgrade, selecting New > Key, and naming it Downlevel. - Back up the Downlevel key
Right-click the Downlevel key and choose Export. Save the .reg file to your desktop. This step lets you restore the holds if the upgrade fails. - Delete all values under Downlevel
Select each value under the Downlevel key and press Delete. Do not delete the key itself. The values have names like FailureAction, FailureActionString, and BlockingApplication. - Close Registry Editor and run Setup
Double-click setup.exe from your Windows 11 installation media. Choose Keep personal files and apps and proceed with the upgrade.
Method 2: Use the /Compat IgnoreWarning Switch to Bypass Holds
- Open an elevated Command Prompt
Press Windows + X and select Terminal (Admin). Click Yes in the UAC prompt. - Navigate to the Setup folder
Type cd /d D:\sources and press Enter. Replace D with the drive letter of your installation media. The drive letter may be different on your system. - Run Setup with the compatibility override
Type the following command and press Enter:setup.exe /Auto Upgrade /Quiet /NoReboot /Compat IgnoreWarning
The /Auto Upgrade parameter forces an in-place upgrade. /Quiet suppresses the user interface. /NoReboot prevents an automatic restart so you can review the log. /Compat IgnoreWarning tells Setup to skip soft compatibility holds. - Monitor the upgrade progress
Open File Explorer and navigate to C:\$Windows.~BT\Sources\Panther. Open setupact.log with Notepad. Search for the word Error or Compat to see if any hard holds remain. If no hard holds exist, the upgrade will complete. - Reboot the PC manually
After the upgrade files are copied, restart the PC by running shutdown /r /t 0 in the same Command Prompt window.
If the In-Place Upgrade Still Fails After Clearing Holds
Setup Log Shows Error Code 0x80070490
Error 0x80070490 indicates a missing or corrupted component store. Run DISM /Online /Cleanup-Image /RestoreHealth from an elevated Command Prompt before attempting the upgrade again. This command repairs the system image that Setup uses for compatibility checks.
Setup Log Shows Error Code 0x80073712
Error 0x80073712 means a required update is missing. Install all pending Windows Updates from Settings > Windows Update and restart the PC. Then retry the in-place upgrade.
Setup Log Shows Error Code 0x80070002
Error 0x80070002 is a file-not-found error. It occurs when the installation media is corrupted or incomplete. Re-download the Windows 11 ISO from the Microsoft Software Download page and create a new USB drive using the Media Creation Tool.
A Specific Driver or App Is Listed in the Hold Message
If the compatibility hold message names a particular driver or application, uninstall that item before running Setup. Open Settings > Apps > Installed apps, find the item, and click Uninstall. For drivers, open Device Manager, right-click the device, and select Uninstall device. Check the box Attempt to remove the driver for this device and confirm.
Registry Hold Cache vs Command-Line Override: Key Differences
| Item | Delete Registry Cache | /Compat IgnoreWarning Switch |
|---|---|---|
| Effect on hard holds | Clears all holds, including hard holds, before Setup rescans the system | Ignores only soft holds; hard holds still block the upgrade |
| Risk level | Low if the hold is a false positive; high if the hold is legitimate and you proceed without fixing the incompatibility | Low when used for soft holds; ineffective for hard holds |
| When to use | When you suspect a stale or incorrect hold is blocking the upgrade | When you are certain the hold is a soft warning and want to skip the compatibility scan |
| Requires registry access | Yes | No |
| Requires elevated command prompt | No | Yes |
You can now clear compatibility holds that block an in-place upgrade on Windows 11. Use the registry method to remove stale cache entries, or use the /Compat IgnoreWarning switch to bypass soft holds. After the upgrade completes, run sfc /scannow from an elevated Command Prompt to verify that all system files are intact. For persistent failures, check the setupact.log file for error codes and address each one individually.