In Part 2 we looked at the Windows 10 upgrade phases and had a brief overview of how to correlate these codes in the resolution procedures

In Part 3 we’ll review the types of logs that will be helpful for troubleshooting and an example

Where’s the best place to start?

Depending on the failure then you might approach this differently but here is a little guide to run you through the process of troubleshooting

If the failure resulted in a rollback then the best place to start to look at the rollback logs located here:

$windows.~bt\Sources\Rollback

There are some key log files and information in this directory:

rollbackinfo.ini
This file can give some useful information such as which phase the rollback occurred, See Part 2 for details

Example:
CurrentPhase=FirstBoot,Start

SetupPlatform.ini
This can give some useful information

Example:
LogDirectory=\$WINDOWS.~BT\Sources\Panther
RollbackDirectory=\$WINDOWS.~BT\Sources\Rollback
SourceOSVersion=10.0.17763
SourceDirDriveLetter=C
DownlevelOSVersion=10,0,17763,0,0

MEMORY.dmp
If the upgrade has rolled back due to a Blue Screen of Death (BSOD) this will also be present. You can use the Windows Debugging Tools to help find the cause.

Setuperr.log
This will give you a snapshot of the errors during the upgrade, this is a good starting point to try and identify the phase and the possible issue for the rollback or failure

Tip:
Keep your eyes peeled for any of the error codes seen on the diagram in Part 2

Note:
There may be other errors and you may have to investigate these also

Setupact.log
This is the full log that contains all the start of the upgrade to the point of the failure or rollback, this includes all the errors found in the setuperr.log

Examples and Details

Here are some examples and details when navigating the logs. The logs contain huge amounts of data so it can become easy to get lost when looking for the issues

My approach to this is that I first review the setuperr.log and see what relevant errors are present:

Setuperr.log

Error MOUPG CDlpActionImpl > > >::Suspend(1253): Result = 0xC1800104 => WINDLP_E_OPERATION_COMPLETED
Error MOUPG CDlpTask::CheckUserInterruptEx(3060): Result = 0x800704D3 => ERROR_REQUEST_ABORTED
Error MOUPG CDlpTask::CheckUserInterrupt(3112): Result = 0x800704D3

Error MOUPG CSetupManager::ExecuteInstallMode(822): Result = 0xC1900208 => This code can be found in the Resolution Procedures (The system does not pass the compat scan to install the update.)

Error MOUPG CSetupManager::ExecuteDownlevelMode(392): Result = 0xC1900208

I would still examine the Setupact.log for additional validation

Setupact.log

The best place to start in this log is at the end and work backwards, as you have the error code from the setuperr.log you can search for it as well

Info MOUPG SetupHost: Reporting error event -> [0xC1900208, 0x4000D]
Warning MOUPG SetupNotify::ReportEvent – Report ID or Event Reporter not available.
Info MOUPG SetupManager: FailureCount = [4]
Info MOUPG SetupManager: Requesting cleanup level [0x1] from parent process.
Info MOUPG SetupManager: Resetting WinDlp state for full cleanup…
Error MOUPG CDlpTask::Cancel(982): Result = 0xC1800104[gle=0x00000003]
Error MOUPG CDlpActionImpl > > >::CheckInitialized(237): Result = 0x8000000A[gle=0x00000003]
Error MOUPG CDlpActionImpl > > >::Cancel(163): Result = 0x8000000A[gle=0x00000003]
Error MOUPG CDlpTask::Cancel(1033): Result = 0x8000000A[gle=0x00000003]
Error MOUPG CDlpManager::Reset(1662): Result = 0x8000000A[gle=0x00000003]
Error MOUPG SetupManager: Reset WinDlp State failed with error [0x8000000A][gle=0x00000003]
Error MOUPG SetupManager: Failed requested cleanup: [0x8000000A][gle=0x00000003]
Error MOUPG CSetupManager::Execute(284): Result = 0xC1900208[gle=0x00000003]
Error MOUPG CSetupHost::Execute(420): Result = 0xC1900208[gle=0x00000003]
Info CONX Uninitializing compatibility provider wsc:setup:…
Info CONX Uninitializing compatibility provider wsc:wica:…
Info MOUPG SetupUI: Calling PowerClearRequest with type [0x1]…
Info MOUPG SetupUI: Power request cleared!
Info MOUPG ** SetupHost Logging End **

You can find multiple references to this error, this gives a little more information which is helpful.
We can see it references the source OS version which is 1809 (17763) and the OS version being upgrade to is 1909 (18362)

Info MOUPG CSetupDiagnostics: Tracing Data [CUSTOM] -> [Downlevel] -> [Media360][3272818e-6501-489a-93d8-1a4167cb9f10][5604a4a5-45c5-4e81-b637-6b806ed844d3][a933672b-52b8-40f4-bf67-83433679e654][][Failed][Windows 10 Enterprise][17763][1][2][0xc1900208][0x4000D][18362]

We see this code 0x4000D in the diagram, so we know this failed in the second boot phase and it was due to a compatibility issue.


To troubleshoot this further we see the following lines before the error:

Info CONX Compatibility scan finished. Scenario: 3, Categories: 0x006f0018
Info CONX Compatibility scan data is saved to C:\$WINDOWS.~BT\Sources\Panther\CompatData_2021_05_10_09_04_19_3_006f0018.xml.
Info CONX Compatibility scan data is saved to C:\$WINDOWS.~BT\Sources\Panther\ScanResult.xml.
Info MOUPG Saved InstallReq scan result at : C:\$WINDOWS.~BT\Sources\Panther\ScanResult.xml

We see this follow a few lines down

Info MOUPG Action execution thread timeout period: [1000 ms]
Info MOUPG InitializeRoutine: MOSETUP_ACTION_IMAGE_EXIT
Info MOUPG ImageExit: Initializing SetupResult: [0xc1900208]
Info MOUPG ImageExit: Initializing Extended: [0x4000d]
Info MOUPG ImageExit: Initializing Scenario: [1]
Info MOUPG ImageExit: Initializing Mode: [2]
Info MOUPG ImageExit: Initializing Target: [C]
Info MOUPG ImageExit: Initializing SQM: [TRUE]
2Info MOUPG ImageExit: Initializing PostReboot: [FALSE]

You can review the CompatData xml or the ScanResult xml to find the cause

<Programs>
<Program IconId=”0000e028ea3752ca1c44b9d5925fd2483ba300000904″ Id=”0000e028ea3752ca1c44b9d5925fd2483ba300000904″ Name=”Name of Incompatible Application“>
<CompatibilityInfo BlockingType=”Hard” StatusDetail=”UpgradeBlock”/>
<Link Value=”Learn More” Target=”https://go.microsoft.com/fwlink/?LinkId=2109246″/&gt;
<Action Name=”AutoUninstall” ResolveState=”NotRun” DisplayStyle=”Link” Link=”wsc:wica:_0000e028ea3752ca1c44b9d5925fd2483ba300000904″/>
</Program>
</Programs>
</CompatReport>

Tools

Microsoft provide some useful tools to look up error codes
The Microsoft Error Lookup Tool – Win32 apps | Microsoft Docs
Download Microsoft Error Lookup Tool from Official Microsoft Download Center