When a quality update fails on an Intune-managed PC, the evidence is usually a bare hex code: an install error in Settings, an Error state in the Intune report, or an HRESULT in CBS.log. This reference lists the Windows Update codes Microsoft documents (agent 0x8024… codes, network and download errors, and servicing failures such as 0x800F081F, 0x800F0922 and 0x80073712) with the meaning, the usual cause on a Windows Update for Business device and the first check. Feature update failures such as 0xC1900101 have their own upgrade error code reference.
Codes in this quick reference
0x80072EE2 WININET_E_TIMEOUT: the operation timed out reaching the update serviceSettings > Windows Update / WindowsUpdate.log0x80072EFD Timeout: a connection to the update server couldn't be madeSettings > Windows Update / WindowsUpdate.log0x80072EFE WININET_E_CONNECTION_ABORTED: the connection was closed abnormallySettings > Windows Update / WindowsUpdate.log0x80072F8F WININET_E_DECODING_FAILED: content decoding failed (TLS 1.2 on the client)Settings > Windows Update / WindowsUpdate.log0x8024401B WU_E_PT_HTTP_STATUS_PROXY_AUTH_REQ: HTTP 407, proxy authentication requiredSettings > Windows Update / WindowsUpdate.log0x80244021 WU_E_PT_HTTP_STATUS_BAD_GATEWAY: HTTP 502 from a gateway or proxySettings > Windows Update / WindowsUpdate.log0x80244022 WU_E_PT_HTTP_STATUS_SERVICE_UNAVAIL: HTTP 503, update source unavailableSettings > Windows Update / WindowsUpdate.log0x8024402C WU_E_PT_WINHTTP_NAME_NOT_RESOLVED: proxy or server name can't be resolvedSettings > Windows Update / WindowsUpdate.log
+ 51 more codes in the tables below.
How to read these codes#
The most precise evidence is always on the device:
- On the device. Settings › Windows Update lists the failed update with a download or install error and the code; Advanced options › Configured update policies shows which policies the device actually received, from Intune or Group Policy.
- In Intune. The device reports under Reports › Windows updates show Update State, Update Substate, an aggregated status such as Error, and an Alert Type with the latest alert. Client-side data needs data collection configured and refreshes about every eight hours (Reports for Windows feature update policies); for empty reports see Windows update reports not showing data.
- In the logs. Scan and download codes land in WindowsUpdate.log (built on demand with
Get-WindowsUpdateLog) and in Applications and Services Logs › Microsoft › Windows › WindowsUpdateClient › Operational. Install failures carry their real cause in%windir%\Logs\CBS\CBS.log; DISM repairs also log to CBS.log and%windir%\Logs\DISM\dism.log.
The prefix names the component. 0x8024xxxx are Windows Update Agent codes (WU_E_): 0x80244xxx is the protocol layer (HTTP and SOAP), 0x80246xxx the download manager, 0x80242xxx the update handler, 0x80248xxx the local data store and 0x8024Cxxx drivers. 0x800Fxxxx come from the servicing stack (CBS_E_, PSFX_E_), 0x8007xxxx wrap a Win32 error in the last four digits, 0x80072Exx and 0x80072Fxx are WinINet network errors, 0x8020xxxx is BITS and 0x80D0xxxx Delivery Optimization. Codes starting 0x0024 are success codes, such as 0x00240005 (WU_S_REBOOT_REQUIRED: restart to finish).
Get-WindowsUpdateLog # writes WindowsUpdate.log to the desktop
Select-String -Path "$env:windir\Logs\CBS\CBS.log" -Pattern ', Error' -SimpleMatch | Select-Object -Last 20
[ComponentModel.Win32Exception]::new(0x422).Message # Win32 text for 0x80070422Scan and connectivity codes#
Intune-managed devices scan Microsoft Update directly over WinHTTP, so a proxy that works in the browser can still block the scan.
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x80072EE2 | WININET_E_TIMEOUT: the operation timed out | The update service, or an old WSUS server, is unreachable | Test the Windows Update URLs through the same proxy and firewall |
0x80072EFD | Timeout: a connection to the update server couldn't be made | Firewall rules or a proxy blocking Microsoft download URLs | Firewall and proxy logs; a network trace if they show nothing |
0x80072EFE | WININET_E_CONNECTION_ABORTED: connection closed abnormally | BITS can't finish a transfer: the connection drops or the target folder can't be written | bitsadmin /list /allusers /verbose, then try the listed URL through the same proxy |
0x80072F8F | WININET_E_DECODING_FAILED: content decoding failed | TLS 1.2 isn't configured correctly on the client | Client TLS settings and any TLS-inspecting proxy in the path |
0x8024401B | WU_E_PT_HTTP_STATUS_PROXY_AUTH_REQ: HTTP 407 | The proxy demands user authentication the scan can't provide | netsh winhttp show proxy; let update traffic through without authentication |
0x80244021 | WU_E_PT_HTTP_STATUS_BAD_GATEWAY: HTTP 502 | A proxy or gateway got an invalid response from upstream | Proxy logs; retest with the proxy bypassed |
0x80244022 | WU_E_PT_HTTP_STATUS_SERVICE_UNAVAIL: HTTP 503, service overloaded | The configured update source can't be reached | Confirm the device scans Microsoft Update, not a forgotten WSUS server |
0x8024402C | WU_E_PT_WINHTTP_NAME_NOT_RESOLVED: proxy or server name not resolved | DNS failure or a stale WinHTTP proxy name | netsh winhttp show proxy and Resolve-DnsName for that host |
0x8024402F | WU_E_PT_ECP_SUCCEEDED_WITH_ERRORS: external cab processing completed with errors | Web filtering software interfering (Microsoft names Lightspeed Rocket) | Exempt the affected devices in the web filter |
Policy and service configuration codes#
These usually mean something other than your update ring is in control: leftover WSUS or hardening Group Policy, or a disabled service. Check HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate (and \AU) and a gpresult /h report.
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x8024002E | WU_E_WU_DISABLED: access to an unmanaged server isn't allowed | A policy blocks Windows Update internet locations, for example Do not connect to any Windows Update Internet locations left from WSUS | Remove the leftover policy and rescan (WSUS and Group Policy checks) |
0x8024002F | WU_E_CALL_CANCELLED_BY_POLICY: the DisableWindowsUpdateAccess policy is set | A hardening GPO or script removing Windows Update access | Find the source in gpresult /h and remove it |
0x80240025 | WU_E_USER_ACCESS_DISABLED: Group Policy prevented access to Windows Update | Restrictive Windows Update Group Policy | gpresult /h and the Configured update policies page |
0x80244011 | WU_E_PT_SUS_SERVER_NOT_SET: WUServer policy value missing | The device is told to use WSUS but no server is set: a half-removed WSUS setup | Delete the leftover WSUS values, restart wuauserv |
0x80070422 | ERROR_SERVICE_DISABLED: Windows Update service stopped or not running | The service was disabled by a script or policy | Get-Service wuauserv; its startup type must not be Disabled |
0x80070BC9 | ERROR_FAIL_REBOOT_REQUIRED: operation failed, restart to roll back | Group Policy setting the start type of TrustedInstaller or Windows Installer, so pending operations can't finish | Set the TrustedInstaller policy to Automatic and restart; if stuck, run dism /Image:C:\ /Cleanup-Image /RevertPendingActions in WinRE |
Download codes#
Windows Update downloads with Delivery Optimization or BITS and keeps its local cache under %windir%\SoftwareDistribution. A generic download code is rarely the root cause; look for the network code just before it in WindowsUpdate.log.
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x80D02002 | Delivery Optimization download timed out | Firewall or proxy blocking download URLs | Get-DeliveryOptimizationStatus and the download URL rules |
0x80200053 | BG_E_VALIDATION_FAILED: BITS validation failed | A firewall or filter altering downloads, so the client receives incorrect responses | Exclude update downloads from content filtering |
0x80246008 | WU_E_DM_FAILTOCONNECTTOBITS: couldn't connect to BITS | BITS disabled or broken | Get-Service BITS; startup type not Disabled |
0x80246007 | WU_E_DM_NOTDOWNLOADED: update hasn't been downloaded | An earlier download failed or was interrupted | The network or BITS code logged before it |
0x80240034 | WU_E_DOWNLOAD_FAILED: update failed to download | Generic; the real reason is a network or BITS error | Same: find the preceding code |
0x80246017 | WU_E_DM_UNAUTHORIZED_LOCAL_USER: local user denied authorization to download | The user who started the download lacks rights to install updates | That user's rights; Microsoft's mitigation is local administrator rights |
0x8024200D | WU_E_UH_NEEDANOTHERDOWNLOAD: must be downloaded again | Cached content incomplete or changed | Normally clears on the next cycle; if it loops, reset the download cache |
0x80248007 | WU_E_DS_NODATA: information isn't in the data store | The local update data store is out of step | Restart wuauserv; if it repeats, reset SoftwareDistribution |
To reset the cache, stop wuauserv, bits and cryptsvc, rename SoftwareDistribution\DataStore, SoftwareDistribution\Download and System32\catroot2 to *.bak, then start the services again.
Install, restart and update handler codes#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x80240016 | WU_E_INSTALL_NOT_ALLOWED: another install running or restart pending | A pending restart or a parallel installation | Restart, then retry; review ring deadlines (update rings) |
0x80240020 | WU_E_NO_INTERACTIVE_USER: no interactive user signed in | The install waits for a signed-in user | Sign in and allow the restart |
0x80242014 | WU_E_UH_POSTREBOOTSTILLPENDING: post-restart operation still in progress | The device hasn't restarted since installing | Restart; a ring deadline forces it once the grace period ends |
0x8024A10A | USO_E_SERVICE_SHUTTING_DOWN: update service shutting down | Long inactivity: the service idles and shuts down mid-operation | Keep the device awake and connected until the install finishes |
0x80242017 | WU_E_UH_NEW_SERVICING_STACK_REQUIRED: servicing stack must be updated first | A required servicing stack update is missing | Install it first, then retry |
0x8024200B | WU_E_UH_INSTALLERFAILURE: installer failed for one or more updates | A servicing (CBS) failure underneath | CBS.log at the same timestamp for the real HRESULT |
0x80242006 | WU_E_UH_INVALIDMETADATA: update contains invalid metadata | Stale or damaged local cache | Reset the cache as above and retry |
0x8024000E | WU_E_XML_INVALID: invalid information in the update's XML | Extra driver metadata the orchestrator treats as invalid | Make sure the latest Windows Update Agent is installed |
0x80240022 | WU_E_ALL_UPDATES_FAILED: failed for all updates | Most often antivirus blocking folders such as SoftwareDistribution | CBS.log for the blocked path; security software logs |
0x80240017 | WU_E_NOT_APPLICABLE: no applicable updates | The package doesn't match the edition, architecture or build | Compare the KB with the build; a later cumulative update may already include it |
0x8024C001 | WU_E_DRV_PRUNED: a driver was skipped | Not fatal: the device matched an installed printer driver | No action unless a driver was expected (driver policies) |
0x8024C006 | WU_E_DRV_SYNC_FAILED: driver synchronization failed | Driver metadata couldn't be synchronized | Rescan; check the network code logged before it |
Servicing stack and component store codes#
These come from CBS, the servicing stack that applies the update; find the first , Error line in CBS.log at the failure time. For corruption, Microsoft's standard repair is:
DISM.exe /Online /Cleanup-Image /RestoreHealth
sfc /scannow
REM No Windows Update access: repair from a matching Windows installation
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:\\server\c$\windows /LimitAccessRestoreHealth pulls repair files from Windows Update; a /Source must run the same Windows version.
Component store corruption#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x800F081F | CBS_E_SOURCE_MISSING: source for package or file not found | Component store corruption; repair can't find the files | RestoreHealth; with /Source if Windows Update is unreachable |
0x800F0831 | CBS_E_STORE_CORRUPTION: CBS store is corrupted | Component store corruption | RestoreHealth, sfc /scannow, restart |
0x80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT: store in an inconsistent state | Component store corruption | RestoreHealth |
0x8007371B | ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE: transaction members missing | Component store corruption | RestoreHealth |
0x80073701 | ERROR_SXS_ASSEMBLY_MISSING: referenced assembly not found | A component left partially installed | RestoreHealth, or repair from that update's payload |
0x800736CC | ERROR_SXS_FILE_HASH_MISMATCH: file doesn't match its manifest | A damaged or modified component file | RestoreHealth |
0x80070570 | ERROR_FILE_CORRUPT: file or directory corrupted and unreadable | Component store corruption | RestoreHealth; check disk health |
0x8007000D | ERROR_INVALID_DATA: invalid data or corruption | A bad download | Reset the download cache, download again, install |
0x800F0984 | PSFX_E_MATCHING_BINARY_MISSING: binary missing from component directory | Component store corruption | RestoreHealth |
0x800F0986 | PSFX_E_APPLY_FORWARD_DELTA_FAILED: applying forward delta failed | Component store corruption | RestoreHealth |
0x800F0982 | PSFX_E_MATCHING_COMPONENT_NOT_FOUND: no matching component for hydration | Component store corruption | RestoreHealth |
0x800F0906 | CBS_E_DOWNLOAD_FAILURE: download failed for a Feature on Demand or repair | No route to Windows Update for repair or optional content | Connectivity, and the Specify settings for optional component installation and component repair policy |
Servicing timeouts and failed installers#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x800F0821 | CBS_E_ABORT: CBS transaction timeout exceeded | Servicing runs so long that the watchdog timer expires | More CPU and memory, especially on virtual machines |
0x800F0920 | CBS_E_HANG_DETECTED: hang detected while processing | Logged after 0x800F0821 on the same slow operation | As for 0x800F0821 |
0x800F0825 | CBS_E_CANNOT_UNINSTALL: package can't be uninstalled | A component in a partially installed state | RestoreHealth, sfc /scannow, restart |
0x800F0922 | CBS_E_INSTALLERS_FAILED: installers failed, update rolled back | An installer step failed; one documented case is license and product key tokens failing to update | CBS.log before the rollback; for that case, write access for User and Network Service on C:\Windows\System32\spp |
Files, permissions and signatures#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
0x80070005 | E_ACCESSDENIED: access denied | Changed file or registry permissions block the servicing stack | CBS.log error line, then scroll up to the denied object |
0x80070020 | ERROR_SHARING_VIOLATION: file in use | Non-Microsoft filter drivers such as antivirus or backup | Clean boot and retry; Process Monitor filtered on the file named in CBS.log |
0x80070002 | ERROR_FILE_NOT_FOUND: file not found | A file missing from the store or the download cache | RestoreHealth; reset the cache if it fails at download |
0x80070003 | ERROR_PATH_NOT_FOUND: path not found | Servicing can't reach a path, or a path to an executable is invalid | CBS.log error line at the timestamp |
0x80070490 | ERROR_NOT_FOUND during a driver install in the update | Driver details such as the architecture missing from the registry | Compare entries under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ComponentBasedServicing\DriverOperations; add the missing Arch value |
0x800B0100 | TRUST_E_NOSIGNATURE: no signature present | A damaged or altered file | RestoreHealth; download again |
0x800B0101 | CERT_E_EXPIRED: certificate outside its validity period | Wrong system clock compared with the file's time stamp | Date, time and w32tm /query /status |
0x80092003 | CRYPT_E_FILE_ERROR: error reading or writing a file | File access problem during update | Free disk space, disk health and CBS.log |
Tip: On co-managed devices where Configuration Manager still owns software updates, these codes appear in WUAHandler.log; see the Configuration Manager software update error codes.
How to verify a fix#
- After a repair, run
DISM /Online /Cleanup-Image /ScanHealthand confirm CBS.log shows no new errors. - Restart, then select Check for updates in Settings › Windows Update. The update should download, install and finish its restart without the error.
- Confirm the build and the event log:
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' |
Select-Object DisplayVersion, CurrentBuild, UBR
Get-WinEvent -LogName 'Microsoft-Windows-WindowsUpdateClient/Operational' -MaxEvents 20 |
Select-Object TimeCreated, Id, MessageCompare the build and UBR with the release's update history. In Intune, the device should leave Error in Reports › Windows updates after the next client data refresh. If a servicing code returns after a successful repair, look outside the store: permissions, filter drivers or a pending operation.
References#
- Windows Update error codes by component (Microsoft Learn): WU_E names and descriptions
- Windows Update common errors and mitigation (Microsoft Learn): causes and mitigations
- Fix Windows Update corruptions and installation failures (Microsoft Learn): corruption codes and DISM repair

