windows 11 version 23h2 repair version failed error code 0x80040154

Scott Boyd 0 Reputation points
2025-10-10T20:08:43.13+00:00

i have tried the 4 recommended steps to solve this issue reporting as class not registered but issue still persists. see below link if you want to verify steps.

https://www.bing.com/search?q=Error%3A+0x80040154+Class+not+registered&cvid=b1dc8d85d0dd4b0eb4f126a1d4581f84&gs_lcrp=EgRlZGdlKgYIABBFGDkyBggAEEUYOTIGCAEQRRg60gEHNzM2ajBqNKgCCLACAQ&FORM=ANAB01&PC=U531

when i try the DISM command to check for corrupted system files it returns the following:

C:\Windows\System32>dism.exe /online /cleanup-image /restorehealth

Deployment Image Servicing and Management tool

Version: 10.0.22621.2792

Image Version: 10.0.22631.3447

Error: 0x80040154

Class not registered

The DISM log file can be found at C:\Windows\Logs\DISM\dism.log

and this is what the dism log reports:

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 DismApi.dll: - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 DismApi.dll: <----- Starting DismApi.dll session -----> - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 DismApi.dll: - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 DismApi.dll: Host machine information: OS Version=10.0.22631, Running architecture=amd64, Number of processors=16 - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 DismApi.dll: API Version 10.0.22621.2792 - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 DismApi.dll: Parent process command line: "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.25080.5-0\MsMpEng.exe" - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Input parameters: LogLevel: 2, LogFilePath: (null), ScratchDirectory: (null) - DismInitializeInternal

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Initialized GlobalConfig - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Initialized SessionTable - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Lookup in table by path failed for: DummyPath-2BA51B78-C7F7-4910-B99D-BB7345357CDC - CTransactionalImageTable::LookupImagePath

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Waiting for m_pInternalThread to start - CCommandThread::Start

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=18064 Enter CCommandThread::CommandThreadProcedureStub - CCommandThread::CommandThreadProcedureStub

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=18064 Enter CCommandThread::ExecuteLoop - CCommandThread::ExecuteLoop

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 CommandThread StartupEvent signaled - CCommandThread::WaitForStartup

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 m_pInternalThread started - CCommandThread::Start

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Created g_internalDismSession - DismInitializeInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Input parameters: ImagePath: DISM_{53BFAE52-B167-4E2F-A258-0A37B57FF845}, WindowsDirectory: (null), SystemDrive: (null) - DismOpenSessionInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Lookup in table by path failed for: DRIVE_C - CTransactionalImageTable::LookupImagePath

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Waiting for m_pInternalThread to start - CCommandThread::Start

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 Enter CCommandThread::CommandThreadProcedureStub - CCommandThread::CommandThreadProcedureStub

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 Enter CCommandThread::ExecuteLoop - CCommandThread::ExecuteLoop

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 CommandThread StartupEvent signaled - CCommandThread::WaitForStartup

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 m_pInternalThread started - CCommandThread::Start

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Successfully enqueued command object - CCommandThread::EnqueueCommandObject

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 ExecuteLoop: CommandQueue signaled - CCommandThread::ExecuteLoop

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 Successfully dequeued command object - CCommandThread::DequeueCommandObject

2025-10-10 12:21:21, Info DISM PID=5980 TID=14164 Scratch directory set to 'C:\Windows\TEMP'. - CDISMManager::put_ScratchDir

2025-10-10 12:21:21, Info DISM PID=5980 TID=14164 DismCore.dll version: 10.0.22621.1 - CDISMManager::FinalConstruct

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM PID=5980 TID=14164 Successfully loaded the ImageSession at "C:\Windows\system32\Dism" - CDISMManager::LoadLocalImageSession

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM DISM Provider Store: PID=5980 TID=14164 Found and Initialized the DISM Logger. - CDISMProviderStore::Internal_InitializeLogger

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 Successfully created the local image session and provider store. - CDISMManager::CreateLocalImageSession

2025-10-10 12:21:21, Info DISM DISM FFU Provider: PID=5980 TID=14164 [C:] is not recognized by the DISM FFU provider. - CFfuImage::Initialize

2025-10-10 12:21:21, Info DISM DISM Imaging Provider: PID=5980 TID=14164 The provider FfuManager does not support CreateDismImage on C:\ - CGenericImagingManager::CreateDismImage

2025-10-10 12:21:21, Info DISM DISM VHD Provider: PID=5980 TID=14164 [C:] is not recognized by the DISM VHD provider. - CVhdImage::Initialize

2025-10-10 12:21:21, Info DISM DISM Imaging Provider: PID=5980 TID=14164 The provider VHDManager does not support CreateDismImage on C:\ - CGenericImagingManager::CreateDismImage

[5980.14164] [0x8007007b] FIOReadFileIntoBuffer:(1456): The filename, directory name, or volume label syntax is incorrect.

[5980.14164] [0xc142011c] UnmarshallImageHandleFromDirectory:(641)

[5980.14164] [0xc142011c] WIMGetMountedImageHandle:(2910)

2025-10-10 12:21:21, Info DISM DISM WIM Provider: PID=5980 TID=14164 [C:] is not a WIM mount point. - CWimMountedImageInfo::Initialize

2025-10-10 12:21:21, Info DISM DISM Imaging Provider: PID=5980 TID=14164 The provider WimManager does not support CreateDismImage on C:\ - CGenericImagingManager::CreateDismImage

2025-10-10 12:21:21, Info DISM DISM Imaging Provider: PID=5980 TID=14164 No imaging provider supported CreateDismImage for this path - CGenericImagingManager::CreateDismImage

[5980.14164] [0x8007007b] FIOReadFileIntoBuffer:(1456): The filename, directory name, or volume label syntax is incorrect.

[5980.14164] [0xc142011c] UnmarshallImageHandleFromDirectory:(641)

[5980.14164] [0xc142011c] WIMGetMountedImageHandle:(2910)

2025-10-10 12:21:21, Info DISM DISM WIM Provider: PID=5980 TID=14164 [C:] is not a WIM mount point. - CWimMountedImageInfo::Initialize

2025-10-10 12:21:21, Info DISM DISM FFU Provider: PID=5980 TID=14164 [C:] is not recognized by the DISM FFU provider. - CFfuImage::Initialize

2025-10-10 12:21:21, Info DISM DISM VHD Provider: PID=5980 TID=14164 [C:] is not recognized by the DISM VHD provider. - CVhdImage::Initialize

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 physical location path: C:\ - CDISMManager::CreateImageSession

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 Event name for current DISM session is Global{10EAD9FC-4942-475A-BDD4-E4DD0CD71DA0} - CDISMManager::CheckSessionAndLock

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 Create session event 0x10e8 for current DISM session and event name is Global{10EAD9FC-4942-475A-BDD4-E4DD0CD71DA0} - CDISMManager::CheckSessionAndLock

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 Copying DISM from "C:\Windows\System32\Dism" - CDISMManager::CreateImageSessionFromLocation

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 No Sandbox was created, DISM running in-place. - CDISMManager::CreateImageSessionFromLocation

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 Successfully loaded the ImageSession at "C:\Windows\System32\Dism" - CDISMManager::LoadRemoteImageSession

2025-10-10 12:21:21, Info DISM DISM Image Session: PID=10264 TID=5428 Instantiating the Provider Store. - CDISMImageSession::get_ProviderStore

2025-10-10 12:21:21, Info DISM DISM OS Provider: PID=10264 TID=5428 Defaulting SystemPath to C:\ - CDISMOSServiceManager::Final_OnConnect

2025-10-10 12:21:21, Info DISM DISM OS Provider: PID=10264 TID=5428 Defaulting Windows folder to C:\Windows - CDISMOSServiceManager::Final_OnConnect

2025-10-10 12:21:21, Info DISM DISM Provider Store: PID=10264 TID=5428 Attempting to initialize the logger from the Image Session. - CDISMProviderStore::Final_OnConnect

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM DISM Provider Store: PID=10264 TID=5428 Found and Initialized the DISM Logger. - CDISMProviderStore::Internal_InitializeLogger

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:21, Info DISM DISM Manager: PID=5980 TID=14164 Image session successfully loaded from location: C:\Windows\System32\Dism - CDISMManager::CreateImageSession

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 Target image information: OS Version=10.0.22631.3447, Image architecture=amd64 - CDismCore::LogImageSessionDetails

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Session id is: 2 - DismOpenSessionInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Input parameters: Session: 2, FeatureName: Windows-Defender-Default-Definitions, PackageName: (null), RemovePayload: 1, CancelEvent: 0x0000000000000000, Progress: 0x0000000000000000, UserData: 0x0000000000000000 - DismDisableFeatureInternal

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=13532 Successfully enqueued command object - CCommandThread::EnqueueCommandObject

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 ExecuteLoop: CommandQueue signaled - CCommandThread::ExecuteLoop

2025-10-10 12:21:21, Info DISM API: PID=5980 TID=14164 Successfully dequeued command object - CCommandThread::DequeueCommandObject

2025-10-10 12:21:21, Info DISM DISM Package Manager: PID=10264 TID=5428 Finished initializing the CbsConUI Handler. - CCbsConUIHandler::Initialize

2025-10-10 12:21:21, Info DISM DISM Package Manager: PID=10264 TID=5428 CBS is being initialized for online use. More information about CBS actions can be located at: %windir%\logs\CBS\CBS.log - CDISMPackageManager::Initialize

2025-10-10 12:21:21, Info DISM DISM Package Manager: PID=10264 TID=5428 Loaded servicing stack for online use. - CDISMPackageManager::CreateCbsSession

2025-10-10 12:21:21, Info CSI 00000001 Shim considered [l:126]'??\C:\Windows\Servicing\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.22621.3662_none_e93555b642ec4d03\wcp.dll' : got STATUS_OBJECT_PATH_NOT_FOUND

2025-10-10 12:21:21, Info CSI 00000002 Shim considered [l:123]'??\C:\Windows\WinSxS\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.22621.3662_none_e93555b642ec4d03\wcp.dll' : got STATUS_SUCCESS

2025-10-10 12:21:31, Error DISM DISM Package Manager: PID=10264 TID=5428 Failed to create a CBS package identity. - CDISMPackageManager::Internal_CreatePackageByName(hr:0x80040154)

2025-10-10 12:21:31, Error DISM DISM Package Manager: PID=10264 TID=5428 Failed to get the underlying CBS package. - CDISMPackageManager::OpenPackageByName(hr:0x80040154)

2025-10-10 12:21:31, Error DISM DISM Package Manager: PID=10264 TID=5428 Failed to open the Foundation package. - CDISMPackageManager::OpenFoundationPackage(hr:0x80040154)

2025-10-10 12:21:31, Error DISM API: PID=5980 TID=14164 Failed to open package - CDisableFeatureCommandObject::InternalExecute(hr:0x80040154)

2025-10-10 12:21:31, Error DISM API: PID=5980 TID=14164 InternalExecute failed - CBaseCommandObject::Execute(hr:0x80040154)

2025-10-10 12:21:31, Error DISM API: PID=5980 TID=13532 CDisableFeatureCommandObject internal execution failed - DismDisableFeatureInternal(hr:0x80040154)

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Input parameters: Session: 2 - DismCloseSessionInternal

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 GetReferenceCount hr: 0x0 - CSessionTable::RemoveSession

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Refcount for DismSession= 2s 0 - CSessionTable::RemoveSession

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Successfully enqueued command object - CCommandThread::EnqueueCommandObject

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=14164 ExecuteLoop: CommandQueue signaled - CCommandThread::ExecuteLoop

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=14164 Successfully dequeued command object - CCommandThread::DequeueCommandObject

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=14164 ExecuteLoop: Cancel signaled - CCommandThread::ExecuteLoop

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=14164 Leave CCommandThread::ExecuteLoop - CCommandThread::ExecuteLoop

2025-10-10 12:21:31, Info DISM DISM Package Manager: PID=10264 TID=5428 Finalizing CBS core. - CDISMPackageManager::Finalize

2025-10-10 12:21:31, Info DISM DISM Manager: PID=5980 TID=14164 Closing session event handle 0x10e8 - CDISMManager::CleanupImageSessionEntry

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=14164 Leave CCommandThread::CommandThreadProcedureStub - CCommandThread::CommandThreadProcedureStub

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 GetReferenceCount hr: 0x0 - CSessionTable::RemoveSession

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Refcount for DismSession= 1s 0 - CSessionTable::RemoveSession

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Successfully enqueued command object - CCommandThread::EnqueueCommandObject

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=18064 ExecuteLoop: CommandQueue signaled - CCommandThread::ExecuteLoop

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=18064 Successfully dequeued command object - CCommandThread::DequeueCommandObject

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=18064 ExecuteLoop: Cancel signaled - CCommandThread::ExecuteLoop

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=18064 Leave CCommandThread::ExecuteLoop - CCommandThread::ExecuteLoop

2025-10-10 12:21:31, Info DISM PID=5980 TID=18064 Temporarily setting the scratch directory. This may be overridden by user later. - CDISMManager::FinalConstruct

2025-10-10 12:21:31, Info DISM PID=5980 TID=18064 Scratch directory set to 'C:\Windows\TEMP'. - CDISMManager::put_ScratchDir

2025-10-10 12:21:31, Info DISM PID=5980 TID=18064 DismCore.dll version: 10.0.22621.1 - CDISMManager::FinalConstruct

2025-10-10 12:21:31, Info DISM Initialized Panther logging at C:\Windows\Logs\DISM\dism.log

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=18064 Leave CCommandThread::CommandThreadProcedureStub - CCommandThread::CommandThreadProcedureStub

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Deleted g_internalDismSession - DismShutdownInternal

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 Shutdown SessionTable - DismShutdownInternal

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 DismApi.dll: - DismShutdownInternal

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 DismApi.dll: <----- Ending DismApi.dll session -----> - DismShutdownInternal

2025-10-10 12:21:31, Info DISM API: PID=5980 TID=13532 DismApi.dll: - DismShutdownInternal

[5992.8888] Mounting new image.

Wim: [C:\Users\scott\Downloads\windows11.0-kb5065790-arm64_d5fb4ba413d21dd7deb759e21a8bb7c052e215a5.msu]

Image Index: [1]

Mount Guid: [20fd96e1-f3ba-4b63-aa93-1e29c1f610cb]

Mount Path: [C:\fc7305ccb038e4d6f83905f695]

[5992.8888] Wimserv process started for mount guid 20fd96e1-f3ba-4b63-aa93-1e29c1f610cb; PID is 12400

[12400.7016] Registered log file(s) for mount of wim at C:\Users\scott\Downloads\windows11.0-kb5065790-arm64_d5fb4ba413d21dd7deb759e21a8bb7c052e215a5.msu.

[12400.7016] Mount complete.

[12400.7016] Received unmount request.

[12400.7016] Unmount complete.

[12400.8240] Wimserv exiting per terminate event.

[12400.8240] Wimserv stopped.

Windows for home | Windows 11 | Windows update
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Richard Trinidad 5,340 Reputation points Independent Advisor
    2025-10-10T20:56:23.7666667+00:00

    Thanks, posting here in Microsoft community and for the detailed info, Scott, The DISM error 0x80040154 ("Class not registered") in Windows 11 23H2 is a known issue that can block system repairs and updates. Based on the latest findings, here are advanced steps you can try beyond the usual SFC/DISM and update troubleshooting.

     

    You can try first, Re-register DISM-related DLLs

    Sometimes the DISM tool itself has missing or unregistered components, simply Open Command Prompt as Administrator and run:

    regsvr32 /s wuaueng.dll

    regsvr32 /s wups.dll

    regsvr32 /s wups2.dll

    regsvr32 /s wuapi.dll

    regsvr32 /s wucltux.dll

    regsvr32 /s wudriver.dll

     

    You can also reset Windows Update Components, simply run these commands in Admin Command Prompt to reset update services:

    net stop wuauserv

    net stop cryptSvc

    net stop bits

    net stop msiserver

    ren C:\Windows\SoftwareDistribution SoftwareDistribution.old

    ren C:\Windows\System32\catroot2 catroot2.old

    net start wuauserv

    net start cryptSvc

    net start bits

    net start msiserver

     

    Also, you can Run DISM from a Mounted ISO, If DISM fails online, try using a local source simply Download the official Windows 11 ISO from Microsoft, then Mount the ISO.

    Run:

    DISM /Online /Cleanup-Image /RestoreHealth /Source:X:\sources\install.wim /LimitAccess

    Replace X: with the mounted ISO drive letter.

     

    In-Place Upgrade (Non-Destructive Repair), If all else fails, perform an in-place upgrade using the ISO, simply run setup.exe from the mounted ISO then Choose Keep personal files and apps, this will reinstall Windows components without wiping your data.

     

    I hope this helps you out, let me know how it goes.

    Chard


  2. Ramesh Srinivasan 173.1K Reputation points Volunteer Moderator
    2025-10-12T03:17:26.0333333+00:00

    Please use my diagnostics VBScript (SSUDiag.vbs) to narrow down the issue.

    Download SSUDiag.vbs.

    https://gist.githubusercontent.com/winhelponline/143020469e68d274e9db9d35f360439c/raw/360b2e8f872b4be81b2392c5ef4708bff0c4c896/SSUDiag.vbs

    Save the file as SSUDiag.vbs (instead of "SSUDiag.vbs.txt")

    Run SSUDiag.vbs by double-clicking on it.

    It outputs a log file. Share the log file on OneDrive and post the link here.


    Note:

    I'm the author of the SSUDiag.vbs VBScript. It's an open-source code and the script does not modify anything on your computer.

    Src: https://gist.github.com/winhelponline/143020469e68d274e9db9d35f360439c

    0 comments No comments

  3. Richard Trinidad 5,340 Reputation points Independent Advisor
    2025-10-13T13:59:15.5266667+00:00

    Hi Scott, thanks for the detailed update and for confirming what you've tried so far. You're being thorough, and I know how stressful this kind of persistent error can be. The DISM error 0x80040154 Class not registered is indeed a tricky one, especially on Windows 11 23H2, and it’s good that you’ve already gone through the usual steps. Since the issue persists even after re-registering DLLs and resetting Windows Update components, here are a few additional suggestions that might help below steps.

    Try to Run DISM from a Mounted ISO Offline Repair, Since the online DISM command fails, running it with a local source might bypass the issue. First, Download the official Windows 11 ISO from Microsoft's website then Mount the ISO by double-clicking it then Open Command Prompt as Administrator after that Run this command, replace X: with your mounted ISO drive letter: DISM /Online /Cleanup-Image /RestoreHealth /Source:X:\sources\install.wim /LimitAccess If install.wim doesn’t exist, use install.esd instead. You can also Perform an In-Place Upgrade, If DISM still fails, this is the most reliable next steps first, Mount the ISO then Run setup.exe after that Choose “Keep personal files and apps” when prompted. This will reinstall Windows components without affecting your data or installed programs.

    I hope this helps you out, let me know how it goes again. Chard

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.