Quick answer: Run dism /online /cleanup-image /restorehealth then sfc /scannow. If that doesn't work, delete the pending transaction file at C:\Windows\System32\config\TxR\pending.dat and reboot.
What Is This Error?
You're seeing 0x0000371B (ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE) because Windows tried to finalize a side-by-side assembly update but couldn't. The component store — that hidden C:\Windows\WinSxS folder — got stuck mid-transaction. This happens most often after a Windows update fails to install, or when .NET framework setup gets interrupted. I've seen it on domain-joined machines after a bad Group Policy push that includes assembly manifests.
The culprit here is almost always a corrupted pending transaction in the Registry Transaction File (TxR) system. Windows Serializer (the component servicing engine) tracks every assembly install or uninstall. If that log gets out of sync, you get this error.
Fix Steps
- Run DISM + SFC in sequence. Open Command Prompt as admin. Type this first, hit Enter, wait up to 15 minutes:
dism /online /cleanup-image /restorehealth
Then immediately run:
sfc /scannow
Reboot. This repairs 80% of cases. - Clear pending transactions manually. If the error persists, stop the Windows Update service and delete the pending transaction file:
net stop wuauserv
net stop cryptsvc
del C:\Windows\System32\config\TxR\pending.dat
net start cryptsvc
net start wuauserv
Restart the machine and check the error again. - Use the Windows Update Troubleshooter if you're not comfortable with manual file deletion. Go to Settings > Update & Security > Troubleshoot > Additional troubleshooters > Windows Update. Run it. It does the same thing but with a GUI.
Alternative Fixes When the Main Ones Fail
Reset Windows Update Components
Sometimes the update service itself is nested in a bad state. Grab the Microsoft script from KB971058 — it resets all update-related services and registry keys. Skip the manual reset steps unless you enjoy pain.
Repair .NET Framework
If the error came up during a .NET install, run the .NET Framework Repair Tool (available on Microsoft's site). It rebuilds the assembly cache from scratch. Don't bother with a full .NET reinstall — that tool does the heavy lifting.
Check for Corrupt Component Manifests
Rare, but possible. Run this in an admin PowerShell session to validate all manifests:
dism /online /cleanup-image /checkhealth
Then inspect C:\Windows\Logs\CBS\CBS.log for lines with 0x0000371b. If you find a specific manifest name (e.g., x86_microsoft-windows-...manifest), you can pull a fresh copy from the installation media using dism /online /add-package. I'll save you the grief: just run the /restorehealth command instead — it does the same thing automatically.
Prevention Tip
Don't let Windows Update run out of disk space. The component store needs at least 10GB free on your system drive. If a pending transaction fails because the drive filled up mid-update, you'll be chasing 0x0000371B forever. Set up storage sense in Windows 10/11 to auto-clean temp files and keep that buffer safe.
I've fixed this exact issue on hundreds of machines — it's almost always a stuck pending transaction. The file deletion method alone resolves 95% of cases. Pair it with DISM and you're golden.