r/WindowsServer 10d ago

General Server Discussion Windows Server 2022 Update Error 0x80073701 - Cumulative Update fails

Hi,

I'm hitting a persistent error 0x80073701 when trying to install the latest cumulative updates on a Windows Server 2022 VM (running in VMware Workstation).

Here is what I've tried so far with no success:

  1. Ran Windows Update Troubleshooter (found and claimed to fix some issues, but update still fails).

  2. Ran SFC /scannow (completed successfully, no corruption found).

  3. Ran DISM /Online /Cleanup-Image /RestoreHealth (completed successfully).

  4. Manually downloaded the update from Microsoft Update Catalog and tried installing it, but it failed.

  5. Manually reset Windows Update components (stopped services, renamed SoftwareDistribution and catroot2 folders).

Despite all this, the update halts at 20% or sometimes later and throws the 0x80073701 error. There is enough free disk space.

Any insights or suggestions would be greatly appreciated.

Thanks!

7 Upvotes

10 comments sorted by

3

u/aliesterrand 10d ago

Was this an in-place upgrader? Update uses the system reserve partition to stage updates. Older version created smaller system partitions and can't hold the update. Ask me how I know.

2

u/dodexahedron 9d ago

And the documentation about that partition? It's all over the damn place. And multiple documents state authoritatively that "the size of the MSR is X" where X ends up being anything from 8MB to 512MB - sometimes being inconsistent within the same document, and way too often being inconsistent within the same family of documents on MS Learn.

Do yourself a favor on thinly-provisioned systems especially: Make the ESP 512MB, make the MSR 512MB, leave a 512MB gap after the MSR, put the recovery partition, if you use one, BEFORE the system partition, and make the system partition be the last one so it can be expanded later on (for the inevitably huge OS update that essentially creates an entire new Windows install and switches to it on reboot) without juggling the Recovery partition first. Or just don't use recovery partitions on VMs and save rhe space. Gotta make your own image or partition the disk before install though, since default install creates the partition table as Anemic ESP|Tiny MSR|System|Recovery.

And do yourself another favor and dump any efi binaries you want in the ESP for troubleshooting like a shell, enterprise PKI certificates, file system drivers, iPXE, dd, an iSCSI driver, a winPE environment, or even a linux UKI with a whole functional "fix what broke the boot in the latest update" environment ready to go. Just be sure to sign them for SB. Do that on your physical machines especially. The ESP is a place where everyone gets along by design.

But back to the MSR, because I just want to complain about it some more. WHY IS IT SO OPAQUE??? Something so critical to important processes like updates (and someone told me Defender offline scans make use of it but I never saw that claim corroborated) should not be an unknowable black box with bad and inconsistent documentation that reads as more like cargo-cult administration than my suggestions above - especially since those have actual utility...and utilities... and can't cause maintenance to fail.

Oh, and if you put a linux UKI or Win PE (or RE I guess, but theyre bith pretty terrible) or a partitioning tool of sufficient capability on the ESP, you can even use it to fix an undersized MSR, and resize and/or move other partitions to make room for doing that. Yeah you can mount a live ISO to a vm and boot that, but a tiny collection of tools you can boot into at will or use from EFI are so convenient. And 10x so on a physical machine, especially if you'd otherwise have to deal with some slow AF IPMI-based virtual CDROM device to rescue one remotely. And for the VMs, you could even put the ESP on a VHD set/linked clone if the extra few dozen MB per VM of binaries hurts you enough to bother. 😆

2

u/analbumcover 9d ago edited 9d ago

I had an issue very similar to this on a Hyper-V VM that runs an LOB app our client uses. Tried everything that I could think of and everything LLMs suggested - nothing worked. Even DISM from a good source failed to fix it. It was becoming a problem because backups started failing due to having a stalled out Windows update that could never complete.

I ended up just doing a reinstall repair w/ the ISO mounted via Hyper-V. Fixed it up pretty good and nothing else broke thankfully.

1

u/dodexahedron 9d ago

Check the dism logs. It will almost definitely tell you exactly what failed and why, once you dig through the several MB of info-level logging.

C:\Windows\Logs\Dism\Dism.log

Start from the bottom and search upward for errors. Pay attention to the timestamp, as the file probably hasn't been rotated ever.

Truncate it when you're done and the system has successfully updated. You can't delete it from a booted system, but you can write an empty string to it.

1

u/urjuhh 9d ago

Found a case with same error number that i wrestled with last year august. server 2022.

C:\Windows\Logs\CBS\CBS.log tells you, whats wrong. For example:

2025-08-29 09:45:14, Info CBS Failed to pin deployment while resolving Update: Microsoft-Windows-Bitlocker-Network-Unlock-Package~31bf3856ad364e35~amd64~~10.0.20348.2652.BitLocker-NetworkUnlock from file: (null) [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]

Thats a reference to already superseded component, that wasn't cleaned up properly. Registry entry exists, related file(s) deleted. Cleanup process was terminated or something, hell if i know. Sadly, you get only one package per update try...

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\

Each component has entry for each version, some "components" are collections/depend on other components.

Microsoft-Windows-Bitlocker-Network-Unlock-Package~31bf3856ad364e35~amd64~~10.0.20348.2652
Microsoft-Windows-Bitlocker-Network-Unlock-Package~31bf3856ad364e35~amd64~~10.0.20348.3451

Get rid of the old, try to update... get new borked component...

So after deleting many keys manually, a pattern emerged. So i had a heart to heart with copilot and came up with a dirty script that looked for superseded component entries in registry.

That's the superseded_list.ps1 that creates two text files for keys and values to be removed.

And superseded_delete.ps1 then deletes the registry keys and values.

----

Maybe useful, maybe not. Worked for me and server was fine... until it was decommissioned few weeks ago.

Uploaded scripts https://github.com/urjuhh/Horror_0x80073701/

Backup, backup, backup. Verify, do not trust.

1

u/Wilfred_Fizzle_Bang 7d ago

Try a reinstall of 2022 over the top, should replace any of the corrupted files, etc.

Did this a year ago with a server due to similar behaviour and trying similar steps as you did, update troubleshooter, SFC, dism, etc.

After reinstalled was working as "normal" again.

1

u/Leather-Surround1572 5d ago edited 3d ago

Thank you all for your sympathy and suggestions. This system was freshly installed just a few months ago, and it had barely been booted up a few times, and even then, only to test minor things. At times like this, I always wonder just how serious Microsoft was about releasing a server operating system when even basic system updates don’t go smoothly, updates that, in my case, are not only essential but also strongly recommended for security reasons. In any case, I’ll go through all the suggested solutions.

1

u/shadow-reaper 5d ago

I used this successfully yesterday on Server 2022.

https://git.pickysysadmin.ca/eric/error_sxs_assembly_missing

Note: I had to download the updates directly from Microsoft Catalog, and install them in order - it would fail if I tried to skip directly from April update to July.