SOLVED:
Windows 10x86 upgrade error 0xC1900101 - 0x3000D

 

 

 

Note: The solution only applies, if the upgrade process crashes at features and drivers >80%
It does not matter, if you upgrade form W10-RTM.x86, W7.x86 or W8.1.x86 to W10-TH2.x86.

 

Just found a bad and unnecessary bug in windows 10 setupplatform.exe.

 

due to Microsoft KB article 185294 the log-file error code: 0xE06D7363 is an unhandled exception.

 

@Mirosoft: To properly handle the error, you need to wrap the offending code in a try...catch block.

 

 

The exact problem seems to be a memory or stack overflow during working on:

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components]

 

In this key MS stores all the information of *.msi packages installed on your system.
In my case the most entries came from “Windows Kits”, “Visual Studio” and “Silverlight”.

I got round about 100000 pointers to files and folders there and 30000 of those missing.
Most of the missing files are a result of my attempts to install/uninstall VS2015/VS2013.

But there are also 2500 files missing in “Windows Kit” and 4200 in “Silverlight”.
I did not had any problems with Silverlight, and the missing Silverlight files all point to

old versions that have been updates. So I assume those pointers to old Silverlight files
are not removed after an update installation. Only 30 key point to other MS locations and
only 120 to files/folders of other 3-party programs. I just checked my W7 backup and
there were only 7000 files missing (2700 Kits, 4200 Silverlight, 30 VS).

 

 

What exactly does Windows 10 upgrade do here?

 

Example:

Let’s say the registry key

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\039BCFFAE8C975E588EFF61432AABE19]

 

contains a value/name


"67916EA72EF656B4E9C1D44E248877B2"=
"F:\\Program Files\\Microsoft Visual Studio 12.0\\Common7\\IDE\\VSWinExpress\\ProjectTemplates\\JavaScript\\Store Apps\\Universal Apps\\3082\\blankuniv\\Phone\\SquareTile44x44@scale-240.png"


and the file
(SquareTile44x44@scale-240.png) is not in the right place, the scanner then creates a log-file output like this:

 

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv\Phone\SquareTile44x44@scale-240.png

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv\Phone\SquareTile44x44@scale-240.png

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv\Phone\SquareTile44x44@scale-240.png

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv\Phone\SquareTile44x44@scale-240.png

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv\Phone

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv\Phone

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040\blankuniv

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps\1040

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal Apps

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps\Universal

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store Apps

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript\Store

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\JavaScript

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0\Common7

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual Studio 12.0

2015-11-18 20:28:42, Info                         GetNewLocation: Request to F:\Windows.old\Program Files\Microsoft Visual Studio inside moved folder redirected to F:\Program Files\Microsoft Visual Studio

2015-11-18 20:28:42, Info                         GetNewLocation: Request to F:\Windows.old\Program Files\Microsoft Visual Studio inside moved folder redirected to F:\Program Files\Microsoft Visual Studio

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Microsoft Visual

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program

2015-11-18 20:28:42, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program

 

The log entries of an existing file look like this:

 

2015-11-18 20:23:45, Info                         GetNewLocation: Request to F:\Windows.old\Program Files\Windows Kits\8.1\Include\um\FaxExt.h inside moved folder redirected to F:\Program Files\Windows Kits\8.1\Include\um\FaxExt.h

2015-11-18 20:23:45, Info                         PLATFORMTRACK: DoesObjectExist called for F:\Program Files\Windows Kits\8.1\Include\um\FaxExt.h

2015-11-18 20:23:45, Info                         GetNewLocation: Request to F:\Windows.old\Program Files\Windows Kits\8.1\Include\um\FaxExt.h inside moved folder redirected to F:\Program Files\Windows Kits\8.1\Include\um\FaxExt.h

2015-11-18 20:23:45, Info                         GetNewLocation: Request to F:\Windows.old\Program Files\Windows Kits\8.1\Include\um\FaxExt.h inside moved folder redirected to F:\Program Files\Windows Kits\8.1\Include\um\FaxExt.h

2015-11-18 20:23:45, Info                         GetNewLocation: Request to F:\Windows.old\Program Files\Windows Kits\8.1\Include\um\FaxExt.h inside moved folder redirected to F:\Program Files\Windows Kits\8.1\Include\um\FaxExt.h

 

 

For me it looks like a recursive call of a procedure.

 

After a key is processed, the used memory is not given back to the system.

Maybe the procedure itself is part of a recursive call. As you can see in the picture setupplatform.exe causes an unhandled c++ exception.

In the moment I’m not sure, if it is the total number of entries or just the number of missing files that cause the crash. For x64 upgrades with 4 or more GB of RAM there may be no problem. I upgraded a W10x64 system with 89000 sub keys and 6000 missing files (3200 Silverlight, 60 VS, 350 other MS, 150 non MS) without any problem. If you upgrade an x86 system you have only 2GB of RAM during the “features and drivers” installation, so an overflow occurs much quicker. To reduce the amount of used memory a bit you can try to use:

 

     setup /Telemetry Disable

Solution that worked for me:

I deleted most of the sub keys under

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components]

 

that contain entries to files that are not found. To check the number of missing files I have written a small program, it can be found in the download folder (check_for_missing_components.exe)

 

Other solutions:

Repair your Visual Studio and Microsoft Kits installation. That hopefully reduces the number of missing files.

Uninstall Visual Studio, Microsoft Kits and Silverlight. That hopefully reduces the number of sub keys. (Didn’t try this.)

Wait for MS to fix the bug. (May take ages.).

 

If you are affected by the problem, please send me an email with the output of my program.

If you want, I can send you the source code of my program that removes my bad entries.

 

To illustrate the different behaviour with/and without repair of missing components I made two videos of a Hyper-V client.

The two upgrades start at the same checkpoint. In the second upgrade I repaired the registry with my program.

 

VIDEO1 (without repair)           VIDEO2 (with repair)

 

 

To test how much memory the scanning of the components key costs, I made a test upgrade where I deleted the key

 

VIDEO3 (test upgrade)

 

The upgrade (with repaired keys) has a minimum of 194MB of available memory

The upgrade (without the key) has minimum of 475MB of available memory.

So the memory used is also depending on the number of files present.

 

 

Solution that worked for others:

One user reported the same error. He had round about 130000 sub-keys under Components, but only 7000 files not found.

So the missing files should not be the cause. His solution was to replace his RAM.

That makes sense. As mentioned above the used memory is depending on the number of entries. The step where 0x3000D occurs is very memory intensive. So, memory is used, where no previous installation step has gone before. :-)