How To Troubleshoot Windows 10 Upgrade Problems


Windows upgrade has become a more frequent process in Windows 10 ear with two big feature updates every year. If you are Windows 10 insider who signed up for the Preview builds in the fast ring, you are going through the full upgrade cycle in a much faster pace, likely once a week, sometimes twice.

It’s not that easy to troubleshoot when an upgrade or feature update fails because Windows doesn’t provide a lot of details of the underlying problem. However, it does keep detailed records of every activity in the log files that helps you narrow down the issue.

Reading raw log files require some technical skills and a pair of very sharp eyes. Fortunately, Microsoft has a diagnostic tool called SetupDiag.exe, a command-line based standalone tool specifically designed to obtain details about why a Windows 10 upgrade was unsuccessful.

Download the tool from this page, save it to a fold that is easy to access and double-click it to identify the setup issues on the current PC. It’s a command-line tool but is smart enough to know the common places where the setup log files are saved.

SetupDiag on Current PC
SetupDiag on Current PC

It saves the result in a plain text file in the same folder as SetupDiag, named SetupDiagResults.log. However, you can use the switch /Output to specify a different location to save the result file.

SetupDiag.exe /Output:c:setupdiagresults.log

If you are diagnosing a problem on another PC, copy the folders containing the log files to a local folder and run the following command.

SetupDiag.exe /Mode:Offline /LogsPath:d:dump /Output:c:setupdiagresults.log

Remember to replace d:dump with the name of the locations where you copied your log files.

Windows Setup log files are available in several places, depending on when the upgrade failed. If an upgrade failed and rolled back to the previous Windows version, the log files are stored in $windows.~btSourcesRollback. If it fails before getting the access to the drives, the log files will be saved in $windows.~btSourcesPanther.

Here is an example of the result with a successful upgrade.

Matching Profile found: FindSuccessfulUpgrade - 8A0824C8-A56D-4C55-95A0-22751AB62F3E
System Information:
Machine Name = C-20120711B
Manufacturer = Hewlett-Packard
Model = HP Compaq 6200 Pro MT PC
HostOSArchitecture = x64
FirmwareType = PCAT
BiosReleaseDate = 20111110000000.000000+000
BiosVendor = Default System BIOS
BiosVersion = J01 v02.15
HostOSVersion = 10.0.15063
HostOSBuildString = 15063.0.amd64fre.rs2_release.170317-1834
TargetOSBuildString = 10.0.16299.15 (rs3_release.170928-1534)
HostOSLanguageId = 1033
HostOSEdition = Professional
RegisteredAV = Sophos Anti,Windows Defender,
FilterDrivers = hmpalert,Sophos Endpoint Defense,SAVOnAccess,wcifs,luafv,Sophos Endpoint Defense,Wof,FileInfo,
UpgradeStartTime = 3/25/2018 8:58:14 PM
UpgradeEndTime = 3/26/2018 12:09:37 AM
UpgradeElapsedTime = 03:11:23
CommercialId = Offline
CV = 
ReportId = 
SetupDiag reports successful upgrade found.
This appears to be a successful update as the last operation was: OOBEBoot and the result was: success


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.