PatchReporter

Docs

Windows Update Event IDs in Event Viewer: Common Error Messages and What They Mean

Decode the common Windows Update Client event IDs in Event Viewer so you can separate scan failures, download failures, install failures, restart requirements, and service health changes quickly.

Category: Troubleshooting | Published 2026-03-12 | Updated 2026-03-21

Troubleshooting for Windows admins and MSPs decoding Windows Update Event Viewer errors

Free Audit

Run The Free Audit

If you need to separate stale scans, reboot debt, failure signals, and real patch risk across endpoints, run the free RMM Patch Health Audit.

Run the free audit

Short Answer

Direct answer: the main Event Viewer log for Windows Update triage is Applications and Services Logs > Microsoft > Windows > WindowsUpdateClient > Operational.

The highest-signal IDs are usually 25 for scan failures, 31 for download failures, 20 for install failures, and 21 for restart-required state.

If you are troubleshooting Windows patching in Event Viewer, the log that matters most is Applications and Services Logs > Microsoft > Windows > WindowsUpdateClient > Operational. That log shows the sequence Windows Update followed: it found updates, started downloading, started installing, required a restart, or failed with a specific error code.

The fastest workflow is to read the sequence, not just one event in isolation. In practice, admins usually pivot around Event ID 25 for scan failures, 31 for download failures, 20 for install failures, and 21 for restart-required states.

Official resource: Microsoft Learn: Windows Update log files

Caution: one event ID rarely tells the whole story. Read the sequence around the failure so you do not mistake a restart blocker or scan issue for an install issue.

Windows Update Event Viewer IDs help you tell whether the failure happened during scan, download, install, or restart completion. That makes Event Viewer one of the fastest ways to classify a Windows update problem before you start broad remediation.

This guide focuses on the WindowsUpdateClient Operational log and the event IDs that save the most triage time, then points you to the right next page when Event Viewer alone is not enough.

Use Microsoft's Windows Update logging documentation when Event Viewer is not enough and you need the deeper Windows Update log path. Microsoft Learn: Windows Update log files

What You'll Get

  • Map common Windows Update Event Viewer IDs to scan, download, install, and restart phases quickly
  • Pull the highest-signal error events with short PowerShell filters instead of manual scrolling
  • Know when to stay in Event Viewer and when to pivot to WindowsUpdate.log or servicing checks

Where to Look in Event Viewer

Open Event Viewer, then browse to the Windows Update client operational channel:

Applications and Services Logs
  Microsoft
    Windows
      WindowsUpdateClient
        Operational

When you are triaging one machine, sort by time and read the update session as a timeline. A normal flow often looks like 26 found updates, 44 started download, 41 download completed, 43 install started, then 19 install succeeded or 20 install failed.

PS> Get-WinEvent -LogName 'Microsoft-Windows-WindowsUpdateClient/Operational' -MaxEvents 50 |
>>   Select-Object TimeCreated, Id, LevelDisplayName, Message

If you need the broader log-location view, use where are Windows Update logs. That page covers Event Viewer, Get-WindowsUpdateLog, and update-related files together.

The Event IDs That Matter Most

Event IDWhat it usually meansWhat to do next
16Windows could not connect to the Automatic Updates serviceCheck connectivity, proxy, service health, and update source reachability.
19Update installation succeededUse it as the success anchor when comparing failed devices with healthy ones.
20Update installation failed and the message includes an error codeCapture the HRESULT, then classify whether the failure is space, reboot, corruption, or service-related.
21Restart is required before Windows can continue scanning or downloadingReboot first; do not keep forcing scan or install retries.
25Windows Update failed to check for updatesTreat it as a scan-layer failure and verify WUA, WSUS or Microsoft Update reachability, proxy, and policy.
26Windows successfully found updatesUse it to prove scan is working before you investigate download or install stages.
29Windows Update lost connectivityLook for network interruptions, VPN changes, proxy issues, or update-source outages.
30Windows Update re-established connectivityCorrelate it with retry success to confirm the issue was transient network access.
31Windows Update failed to download an updateCheck content source reachability, BITS, disk pressure, and any proxy or TLS inspection issues.
32Client could not connect to the update serverVerify the configured server, DNS resolution, firewall path, and WSUS or Microsoft Update availability.
33Proxy authentication blocked Windows UpdateCorrect proxy credentials or bypass rules before deeper servicing repair.
34Windows Update Client Core self-update failedInvestigate update agent health before trusting any later patch results from that machine.
35Windows Update Client Auxiliary self-update failedTreat it as client-health debt that can distort later patch behavior.
42Windows Update health changedUse nearby events to determine whether the health change reflects recovery or a newly degraded state.
43Installation startedUse it with Event ID 19 or 20 to confirm whether the failure happened during the actual install phase.
44Download startedUse it with Event ID 31 to isolate content download failures from scan failures.

The event names above are paraphrased from the Windows provider metadata. On the local system used for authoring, the Microsoft-Windows-WindowsUpdateClient provider exposes these IDs directly through Get-WinEvent -ListProvider.

How to Read the Message Text

The two message patterns that matter most in practice are install failure and scan failure. Event ID 20 usually says Windows failed to install a specific update and includes an error code, while Event ID 25 usually says Windows failed to check for updates and includes a scan-layer error code.

That distinction matters operationally:

  • If you see 25, solve scan, policy, or connectivity first.
  • If you see 31, solve download path, proxy, BITS, or content-access issues first.
  • If you see 20 after 43, solve install blockers such as pending reboot, low disk space, servicing corruption, or prerequisite issues.
PS> Get-WinEvent -FilterHashtable @{
>>   LogName = 'Microsoft-Windows-WindowsUpdateClient/Operational'
>>   Id = 20, 25, 31
>> } -MaxEvents 30 |
>>   Select-Object TimeCreated, Id, Message

When Event ID 21 is part of the pattern, pivot to update requires restart. When Event ID 20 or 31 repeats, continue to Windows Update fails to install common fixes.

PowerShell Filters for Fast Triage

If you need to collect evidence quickly, filter the operational log by the high-signal IDs rather than dumping everything.

PS> Get-WinEvent -FilterHashtable @{
>>   LogName = 'Microsoft-Windows-WindowsUpdateClient/Operational'
>>   StartTime = (Get-Date).AddDays(-7)
>>   Id = 19, 20, 21, 25, 31, 43, 44
>> } |
>>   Sort-Object TimeCreated |
>>   Format-Table TimeCreated, Id, LevelDisplayName, Message -Auto

Inference from Windows patch operations: this filtered view is usually enough to tell whether the machine never scanned correctly, never downloaded correctly, or reached the install phase and failed there.

When Event Viewer Is Not Enough

Event Viewer is the fast triage surface, but it is not always the deepest source. If you need more detail for an HRESULT or servicing failure, pivot next to Get-WindowsUpdateLog, CBS logs, DISM results, and the underlying service state for wuauserv, BITS, and cryptsvc.

Microsoft's Windows Update log documentation is the right reference when you need to understand what Event Viewer can tell you quickly versus what the full log path can confirm.

PS> Get-WindowsUpdateLog
PS> Get-Service wuauserv, bits, cryptsvc, trustedinstaller | Select-Object Name, Status, StartType
PS> DISM /Online /Cleanup-Image /ScanHealth

Use this sequence when Event ID 20 or 31 tells you the phase that failed, but not enough about the root cause to remediate safely.

If the failing event references a specific update, match it with what is a KB number in Windows Update. If the real issue is that Windows will not even scan, use how to check for Windows updates for the first branch.

Common Mistakes

  • Looking at one event in isolation instead of reading the update timeline around it.
  • Treating Event ID 20 and Event ID 25 like the same problem branch.
  • Ignoring restart-required state when Event ID 21 appears.
  • Stopping at Event Viewer when you still need WindowsUpdate.log or service health checks.
  • Skipping the update identity and KB context when a specific patch keeps failing.

FAQ

Which Event Viewer log shows Windows Update client errors?

The main log is Applications and Services Logs > Microsoft > Windows > WindowsUpdateClient > Operational.

Which Windows Update event IDs usually indicate a real failure?

Event ID 25 usually points to scan failure, Event ID 31 to download failure, and Event ID 20 to install failure. Those three usually tell you which troubleshooting branch to take first.

Use This Guide With the Product

Compare Windows Update event-log troubleshooting with the patch posture and endpoint visibility available in PatchReporter.

See endpoint patch visibility

Related Docs

Browse all docs or see product features.