Recently we noticed a number of computers that refused to install the latest Windows 11 24H2/25H2 cummulative update and were throwing error 0x800F0983 - which at this time was KB5068861.
If you search the internet the issue appears to be very common but noone seems to have an actual solution for the problem. Instead they are all telling you to reinstall Windows, to do an Inplace Update, to run a repair installation ...
That is not a solution for me - that is giving up. Especially on multiple remote computers. So instead I tried figuring out what was actually preventing these updates from getting installed.
As a preface: The computers this occured on were installed with Windows 10 22H2 and later upgraded through a SCCM task sequence to Windows 11 24H2. Multiple Windows updates have been successfully installed on them after the migration.
Besides the recommendations to reinstall Windows (with or without keeping all your data and programs) the other "tips & tricks" included the usual suspects of DISM and SFC.
But having already tried all these with no success the problem was hiding much deeper.
Just to reiterate, all the following commands came back clean, no errors found or repaired, and in the end achieved nothing for this problem.
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
SFC /scannow
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
But back to the problem at hand.
As a little background info, we are deploying our updates through SCCM. So we checked the "WUAHandler.log" under "C:\Windows\CCM\Logs" and found the following:
<![LOG[1. Update (Missing): 2025-11 Kumulatives Update für Windows 11 Version 24H2 für x64-basierte Systeme (KB5068861) (26100.7171) (4b9492eb-7aff-4117-b896-cecd59e61bc8, 100)]LOG]!><time="09:59:19.394-60" date="11-25-2025" component="WUAHandler" context="" type="1" thread="16444" file="cwuahandler.cpp:1914">
<![LOG[Async installation of updates started.]LOG]!><time="09:59:19.719-60" date="11-25-2025" component="WUAHandler" context="" type="1" thread="16444" file="cwuahandler.cpp:2367">
<![LOG[Update 1 (4b9492eb-7aff-4117-b896-cecd59e61bc8) finished installing (0x800f0983), Reboot Required? No]LOG]!><time="10:03:11.594-60" date="11-25-2025" component="WUAHandler" context="" type="1" thread="17872" file="cwuahandler.cpp:2547">
<![LOG[Async install completed.]LOG]!><time="10:03:11.594-60" date="11-25-2025" component="WUAHandler" context="" type="1" thread="17872" file="cwuahandler.cpp:2574">
<![LOG[Installation job encountered some failures. Job Result = 0x80240022.]LOG]!><time="10:03:11.594-60" date="11-25-2025" component="WUAHandler" context="" type="2" thread="16444" file="cwuahandler.cpp:4461">
<![LOG[Installation of updates completed.]LOG]!><time="10:03:11.594-60" date="11-25-2025" component="WUAHandler" context="" type="1" thread="16444" file="cwuahandler.cpp:4821">
So now we already had two different error codes. I will spare you the wild goose chase for 0x80240022 though, since the focus of this article is 0x800f0983.
Even a manual attempt at installing the update downloaded from the Microsoft Update Catalog ended with the same error.
After exhausting all the usual tricks we use to get Windows to install updates again (inlcuding DISM, SFC, resetting WU, ...) it was time to turn to the "CBS.log" in "C:\Windows\Logs\CBS".
After first removing the old log to start with a clean slate I tried installing the update again. Of course it failed with the same error code. But now I had a clean CBS.log to work with - though at just over 200MB and 1.5 million lines I certainly expected much worse than what I got in the end.
Simply searching for "800f0983" (without the leading "0x") gave me exactly what I needed.
2025-11-26 15:31:30, Info CSI 00000027 Component Microsoft-Windows-SmbDirect, version 10.0.26100.5074, arch amd64, nonSxS, pkt {l:8 b:31bf3856ad364e35} does not have a winner but has 2 other component version(s)
2025-11-26 15:31:30, Info SXS Hydration: No matching winner found. Taking the first match amd64_microsoft-windows-smbdirect_31bf3856ad364e35_10.0.26100.5074_none_e6582b4c42ed52c9\smbdirect.sys
2025-11-26 15:31:30, Info SXS ThreadId: 7900, Thread started, File: amd64_microsoft-windows-smbdirect_31bf3856ad364e35_10.0.26100.5074_none_e6582b4c42ed52c9\smbdirect.sys, FileCount: 1
2025-11-26 15:31:30, Error CSI 00000028 (F) Component directory missing. Dir: \SystemRoot\WinSxS\amd64_microsoft-windows-smbdirect_31bf3856ad364e35_10.0.26100.1301_none_e630f642430bb3bc, File: smbdirect.sys, Comp: Microsoft-Windows-SmbDirect, version 10.0.26100.5074, arch amd64, nonSxS, pkt {l:8 b:31bf3856ad364e35}[gle=0x80004005]
2025-11-26 15:31:30, Error CSI 00000029@2025/11/26:14:31:30.149 (F) onecore\base\wcp\componentstore\storelayout.cpp(2204): Error 800f0983 [Warning,Facility=15 (0x000f),Code=2435 (0x0983)] originated in function ComponentStore::CRawStoreLayout::OpenComponentFile expression: ((SCODE) (((unsigned long)(1)<<31) | ((unsigned long)(15)<<16) | ((unsigned long)(0x983))) )
[gle=0x80004005]
And basically right after that the second match:
2025-11-26 15:31:30, Error SXS ThreadId: 7900, failed to get hash info of winner version: 10.0.26100.1301 for file: amd64_microsoft-windows-smbdirect_31bf3856ad364e35_10.0.26100.5074_none_e6582b4c42ed52c9\smbdirect.sys: 800f0983 [Warning,Facility=15 (0x000f),Code=2435 (0x0983)]
2025-11-26 15:31:30, Error SXS WIL Origination: onecore\base\servicing\turbostack\lib\parallelhydrator.cpp(966)\TurboStack.dll!00007FFEF2541219: (caller: 00007FFEF254A090) Exception(1) tid(1edc) 800F0983
2025-11-26 15:31:30, Error CSI 0000002a@2025/11/26:14:31:30.413 (F) onecore\base\servicing\turbostack\lib\parallelhydrator.cpp(966): Error 800f0983 [Error,Facility=(000f),Code=2435 (0x0983)] originated in function (null) expression: (null)
[gle=0x80004005]
2025-11-26 15:31:30, Info SXS Hydration: failed with hresult: 800f0983 [Error,Facility=(000f),Code=2435 (0x0983)]
2025-11-26 15:31:30, Info CBS Parallel hydration failed [HRESULT = 0x800f0983 - PSFX_E_MATCHING_COMPONENT_DIRECTORY_MISSING]
Looking at the two log excerpts tells us two things, which I marked in green:
- The directory "C:\Windows\WinSxS\amd64_microsoft-windows-smbdirect_31bf3856ad364e35_10.0.26100.1301_none_e630f642430bb3bc" appears to be missing.
- The file "C:\Windows\WinSxS\amd64_microsoft-windows-smbdirect_31bf3856ad364e35_10.0.26100.5074_none_e6582b4c42ed52c9\smbdirect.sys" appears to be missing too.
Note the difference in the version number, 1301 vs. 5074.
I checked the WinSxS folder and confirmed that the folder for the older version is indeed not there. And not only is the "smbdirect.sys" file missing from the newer version's folder, the folder is completely empty.
The thing is that SmbDirect is actually disabled on all the affected client, as Powershell confirms:
> Get-WindowsOptionalFeature -Online -FeatureName SmbDirect
FeatureName : SmbDirect
DisplayName : SMB Direct
Description : Remote Direct Memory Access (RDMA) support for the SMB 3.x file sharing protocol
RestartRequired : Possible
State : Disabled
CustomProperties :
Apparently, despite being disabled, somehow Windows thinks that SmbDirect is still referenced in CBS. And because the related files and folders either do not exist or are empty in the the WinSxS folder the Windows update fails to install.
The solution to this is quite easy. Simply execute the following Powershell command:
Disable-WindowsOptionalFeature -Online -FeatureName SmbDirect -RemoveChecking the status of the SmbDirect feature again now shows the following:
> Get-WindowsOptionalFeature -Online -FeatureName SMBDirect
FeatureName : SmbDirect
DisplayName : SMB Direct
Description : Remote Direct Memory Access (RDMA) support for the SMB 3.x file sharing protocol
RestartRequired : Possible
State : DisabledWithPayloadRemoved
CustomProperties :
And that is it. That solved Windows Update error 0x800F0983 for me on multiple computers.
Your mileage might very well vary. It might be a different file/folder that is missing in WinSxS, but you should now know where to look and be able to find the cause and fix it yourself.
The only question that really remains is: Why is DISM not reporting this issue? I guess missing files and folders cannot be corrupt so there is simply nothing wrong ...
[1] https://beingwinsysadmin.blogspot.com/2025/11/windows-update-fails-with-0x800f0983.html
No comments:
Post a Comment