Fix Error 0xC1900101 – 0x4001E When Upgrading Windows 10

Windows 10 Installation 0xC1900101-0x4001E Error

In my previous post, I showed you how to solve a Windows 10 Upgrade error 0x8007001F – 0x20006.
But just after overcoming this error, the Windows 10 upgrade process continues over phase 02. But the setup was stuck again at phase 4 when processing the OOBE (Out Of the Box Experience) and failed with the following message:

0xC1900101 – 0x4001E: The installation failed in the SECOND_BOOT phase with an error during PRE_OOBE operation.

If you don’t know it, the out of the box experience is the step when Cortana starts talking and ask you for your language preferences, Keyboard selection, Network connection…etc.

The Troubleshooting

First, let’s examine the error code 0xC1900101 – 0x4001E.
The error code is a combination of two parts; The “result” code and the “extended” code.

Part 1: The resulting code (0xC1900101)

The 0xC1900101 is the result code. 0xC1900101 is a generic code that indicates that a rollback has occurred. Knowing that a rollback has occurred is not a big deal since I know that already. So I need to interpret the extended code 0x4001E to understand what caused the rollback.

Part 2: The extended code (0x4001E)

The extended code contains information about both the phase in which the error occurred and the operation performed when the error occurred.
By examining the code, I can deduct that the error occurred in phase 4.

Phase 4, is when the system boots for the second time and performs the following tasks:

  • Migrate user settings;
  • Migrate user data;
  • Start OOBE (Out Of the Box Experience);

The 1E code part indicates that the error occurred during the Pre-OOBE operation ( SP_EXECUTION_OP_PRE_OOBE ).

Knowing this information can help me to search for clues in the log files.
Here are the last lines of the setupact.log under C:\$WINDOWS.~BT\ Sources\Panther\ path;

2019-06-17 19:26:44, Info                  SP       Operation (executed): Stop suspended services
 2019-06-17 19:26:44, Info                  SP       Operation (executed): OOBE boot apply
 2019-06-17 19:26:44, Info                  SP       Operation (executed): Refresh localized strings
 2019-06-17 19:26:44, Info                  SP       Operation (remaining): Execute provisioning migration
 2019-06-17 19:26:44, Info                  SP       Operation (remaining): Gather end install, scope: EVERYTHING
 2019-06-17 19:26:44, Info                  SP       AddSpace: add:       314572800, current:       314572800, peak:       314572800
 2019-06-17 19:26:44, Info                  SP       Operation (remaining): Start suspended services
 2019-06-17 19:26:44, Info                  SP     DISKSPACEQUERY: Final disk space needed estimate: 314572800
 2019-06-17 19:26:44, Info                  SP     Executing operation: Execute provisioning migration
 2019-06-17 19:26:44, Info                  SP     DISKSPACETRACK: Available    : 246212075520
 2019-06-17 19:26:44, Info                  SP     DISKSPACETRACK: Needed total : 314572800
 2019-06-17 19:26:44, Info                  SP     DISKSPACETRACK: Needed for op: 0
 2019-06-17 19:26:44, Info                  SP     MEMORYTRACK: Total           : 34234527744
 2019-06-17 19:26:44, Info                  SP     MEMORYTRACK: Load            : 17
 2019-06-17 19:26:44, Info                  SP     MEMORYTRACK: Available for op: 31536902144
 2019-06-17 19:26:45, FatalError [0x090001] PANTHR Exception (code 0xC0000005: ACCESS_VIOLATION) occurred at 0x00007FFFB4C75087 in C:\Windows\System32\provengine.dll (+0000000000005087).  Minidump attached (107228 bytes) to diagerr.xml and C:\Windows\Panther\mndA758.diagerr.mdmp.
 2019-06-17 19:26:45, Info                  SP     SETUPPLATFORMCOMM: Progress message received: Phase: OOBE Boot, Operation: Unknown, Percentage: 47%
 2019-06-17 19:26:45, Info                  SP     WINDEPLOY error code is 0x80004005. Will not attempt uninstall
 2019-06-17 19:26:45, Info                  CBS    Trusted Installer signaled for shutdown, going to exit.
 2019-06-17 19:26:45, Info                  CBS    Trusted Installer is shutting down because: SHUTDOWN_REASON_NOTIFICATION:PRESHUTDOWN
 2019-06-17 19:26:45, Info                  CBS    TiWorker signaled for shutdown, going to exit.
 2019-06-17 19:26:45, Info                  CBS    CbsCoreFinalize: ExecutionEngineFinalize
 2019-06-17 19:26:45, Info                  CBS    Execution Engine Finalize
 2019-06-17 19:26:45, Info                  CBS    Execution Engine Finalize

I started reading the log file from the button up to the top, searching for keywords like error, fatal, failed…etc.
And in a short time, I found this line “FatalError [0x090001] PANTHR Exception (code 0xC0000005: ACCESS_VIOLATION) occurred at 0x00007FFFB4C75087 in C:\Windows\System32\provengine.dll…
it seems that the setup program faced a memory access violation caused by running code loaded from the DLL provengine.dll and it generated a memory dump file.

I then tried to analyze the dump file in windbg, by issuing the command “!analyze -v”

STACK_TEXT:  
 0000009b4867a880 00007fffb4c81dce : 0000023fbe519960 0000009b4867a9b0 0000000000000001 0000023fbe519960 : provengine!TraceLoggingCorrelationVector::ToString+0x23
 0000009b4867a8b0 00007fffb4c8257d : 0000000000000000 0000009b4867bc00 0000023fa48c5ec0 0000000000000000 : provengine!CMVEngine::QueryPackageForState+0x37a
 0000009b4867ad70 00007fffb4c7f640 : 0000023fa48c5738 0000009b4867bc00 0000023fa48c5740 0000000000000000 : provengine!CMVEngine::HandleStatesInternal+0x45d
 0000009b4867af00 00007fffb4c80653 : 0000023fa42a86e0 0000000000000000 0000000000000000 0000023fbe5248b0 : provengine!CMVEngine::HandleStatesForPackagesInternal+0x68c
 0000009b4867b150 00007fffb4dce540 : 0000023fbe5248a0 0000023fbe524200 0000023f00000006 0000009b4867b340 : provengine!CMVEngine::HandleStates+0x4e3
 0000009b4867b300 00007fffb4e14db1 : 0000023fa043e618 0000023fa043e618 0000023fa043e618 0000023fa73322d8 : provops!ProvOperations::ApplyKnownPackages+0x7c0
 0000009b4867b8a0 00007fffb6072d2b : 0000023fb1bfa2f8 00007fffb4e14b90 0000009b4867bc00 0000023fa73322d8 : ProvMigrate!ProvMigration+0x221
 0000009b4867b970 00007fffb61f84b8 : 0000023fa043e618 0000023fa73322d8 00130011000607e3 000100b0002c001a : SetupPlatform_7fffb5f20000!CProvisioningMigration::DoExecute+0x24b
 0000009b4867ba10 00007fffb61ffb35 : 0000023fa043e618 fffffff70000000a 0000023fa73322d8 01d5254298f81eee : SetupPlatform_7fffb5f20000!COperation::Execute+0x100
 0000009b4867bb00 00007fffb613d8d5 : 0000009b4867bd70 0000009b4867bd80 0000023fa03ef4b8 0000023fa7655e98 : SetupPlatform_7fffb5f20000!COperationQueue::ExecuteOperations+0x19c5
 0000009b4867bd10 00007fffb614415d : 0000023fa03d41d8 0000023fa03d41d8 0000023fa03f6e88 0000023fa0443c38 : SetupPlatform_7fffb5f20000!pExecutePostBootOperations+0x231
 0000009b4867bde0 00007ff76ef931aa : 0000000000000001 0000000000000003 0000000000000001 0000000000000000 : SetupPlatform_7fffb5f20000!CSetupPlatformPrivate::Execute+0x43fd
 0000009b4867c470 00007ff76ef98bf9 : 0000000000000001 0000000000000001 0000000000000000 0000000000000000 : SetupPlatform!wWinMain+0x1a1e
 0000009b4867f6f0 00007fffc1ec81f4 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : SetupPlatform!__wmainCRTStartup+0x1c9
 0000009b4867f7b0 00007fffc29ea251 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : kernel32!BaseThreadInitThunk+0x14
 0000009b4867f7e0 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : ntdll!RtlUserThreadStart+0x21

The result didn’t guide me toward a clear clue. So I took the instruction at the top of the call stack (provengine!TraceLoggingCorrelationVector::ToString) and put it in google search engine.

Why the instruction on the top of the stack?
Because it was the instruction that caused the memory access violation.
So, with a bit of luck, someone else has gone through the same problem and found the fix.

And sure enough, I found an article, talking about the same error and delivering the solution to fix that problem.

The solution:

At a glance to solve the Windows 10 upgrade 0xC1900101 – 0x4001E error code, you have to:

  1. Rename the “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning ” registry key to “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning.old
  2. Rename the C:\Windows\Provisiong folder to C:\Windows\Provisiong.old
  3. Restart your computer;
  4. Run the setup again.

You can read the step by step solution here.

Please leave a comment below and share this article on your preferred social media platform, so that other persons can benefit.

Share this article

2 thoughts on “Fix Error 0xC1900101 – 0x4001E When Upgrading Windows 10”

  1. Pingback: How To Troubleshoot Windows 10 Installation Failed With Error 0x8007001f-0x20006 - ZineTek

Leave a Reply