Windows Server 2019 Failing to install Cumulative Updates
So it was normal patching routine after installing fresh Windows Server 2019 and trying to build a SOE image.
Windows Server 2019 built alright with all software’s required and time to try out latest Updates. All updates installed fine except latest Cumulative pack for 2020-02 or 03.
Installation Failure: Windows failed to install the following update with error 0x800F0922: 2020-02 Cumulative Update for Windows Server 2019 for x64-based Systems (KB4532691).
Installation Failure: Windows failed to install the following update with error 0x800F0922: 2020-03 Cumulative Update for Windows Server 2019 for x64-based Systems (KB4538461).
I began researching on search engines but did not find much of a clue. Some people were suggesting rebuilding WMI, Software Repository, chkdsk etc. I tried all those in desperation but nothing worked.
Then I found something about Language packs with Asain languages. Although I did not had any Asain language packs, but I uninstalled any language packs but it did not work as well.
Then I found something regarding System Reserved disk too small. I built with 350 MB, then with 550 MB and even shared system and active partition with C Drive. But nothing worked.
Then I decided to build a Vanilla Windows Server 2019 and apply update, and this time it worked without issue. So that suggests me that it is not Windows OS.
I built one more VM with SCCM but not joined to Domain, that worked as well. that to me, proves that it is something related to Domain, either one of the Group Policy or a proxy server.
Firstly I tried Blocking inheritance and tried installing, and it worked straight away. So I know it is one of the Group Policy settings which is causing this behaviour. Now it is time to find the culprit…
Finally, One of the Group Policy setting the App Readiness Service to disabled, once I disable the Group Policy with the particular setting – all servers took the updates.
Alternatively Make sure that this Service is set to Enabled or at least set to Manual, so it can be started when required.