While performing an in-place upgrade from SQL Server 2014 SQL server 2016 my client faced an error. In this blog, I am going to share the cause and the solution of error Microsoft .NET Framework 4.0 installation has failed with exit code -2146498511 which was faced during SQL Server upgrade. Looking at the nature of error I am sure it can be encountered in installation as well.
Whenever I see any error number is negative I always convert it took hexadecimal. here is the hexadecimal for the error code 800F0831 (you can use a calculator to do so)
I started looking at setup logs and found below
Slp: Microsoft .NET Framework 4.0 installation has failed with exit code -2146498511.
Slp: Watson bucket for Msi based failure has been created
Slp: Error: Action “Install_DotNet46_Cpu64_Action” failed during execution.
Slp: Completed Action: Install_DotNet46_Cpu64_Action, returned False
From above, it is clear that setup is failing to install .Net 4.6 on the computer. When I looked into the folder, there was a file for .NET install also.
Framework Error
Action: Performing actions on all Items
Action: Performing Action on Exe at C:\3ba8c9ecb44ae8c55f756e95\SetupUtility.exe
Exe (C:\3ba8c9ecb44ae8c55f756e95\SetupUtility.exe) succeeded.
Action complete
Action: Performing Action on Exe at C:\3ba8c9ecb44ae8c55f756e95\SetupUtility.exe
Exe (C:\3ba8c9ecb44ae8c55f756e95\SetupUtility.exe) succeeded.
Action complete
Action: Performing Action on Exe at C:\3ba8c9ecb44ae8c55f756e95\x64-Windows8.1-KB3045563-x64.cab
Exe (C:\3ba8c9ecb44ae8c55f756e95\x64-Windows8.1-KB3045563-x64.cab) failed with 0x800f0831 – (null).
Exe Log File: CBS.log
Action complete
Action: Performing actions on all Items
Action complete
Action complete
Final Result: Installation failed with error code: (0x800F0831) (Elapsed time: 0 00:01:30).
The hex code is matching with a decimal number which we saw earlier. From the log, it is clear that there is a failure to install KB3045563 and the package is “x64-Windows8.1-KB3045563-x64.cab”. As the message mentioned, I looked into CBS.log and found below
Info CBS Store corruption, manifest missing for package: Package_2_for_KB4095515~31bf3856ad364e35~amd64~~6.3.1.0
Error CBS Failed to resolve package ‘Package_2_for_KB4095515~31bf3856ad364e35~amd64~~6.3.1.0’ [HRESULT = 0x800f0831 – CBS_E_STORE_CORRUPTION]
Info CBS Mark store corruption flag because of package: Package_2_for_KB4095515~31bf3856ad364e35~amd64~~6.3.1.0. [HRESULT = 0x800f0831 – CBS_E_STORE_CORRUPTION]
Info CBS Failed to resolve package [HRESULT = 0x800f0831 – CBS_E_STORE_CORRUPTION]
Info CBS Failed to get next package to re-evaluate [HRESULT = 0x800f0831 – CBS_E_STORE_CORRUPTION]
Above tells some kind of corruption in CBS.
WORKAROUND/SOLUTION
Later I found this article which talks about the same error and the solution also.
To fix the issue, follow these steps:
- Go to Microsoft Update Catalog.
- In the Searchbox, enter the package ID of the <Missing_Package>.
- Download the package and then install it.
After above, we were able to perform the installation of the .NET framework and SQL Server also. Please comment and let me know if you found this useful.
Reference: Pinal Dave (https://blog.sqlauthority.com)
First appeared on SQL SERVER – Upgrade Error: Microsoft NET Framework 4.0 Installation Has Failed With Exit Code – 2146498511