Exchange Server security updates (SUs) are much smaller than cumulative updates, but a bad install can still leave Outlook on the web (OWA) and the Exchange admin center returning errors, services disabled or mail flow stopped. In this post I'll cover how to prepare so the install succeeds first time, Microsoft's documented fixes for the failures you're most likely to hit, and the checks that prove the update really landed.
Errors this guide fixes
Could not load file or assembly 'Microsoft.Exchange.Common'OWA / ECP (HTTP 500)The upgrade patch cannot be installed by the Windows Installer serviceSecurity update installerError code 1603: The installer has insufficient privileges to access this directorySecurity update installerExchange services left Disabled after a failed updateServices consolethis Interim Update is incompatible with the currentSecurity update installerCreating Native images for .NET assembliesSecurity update installerCannot serialize contextExchange Management Shell (HTTP 400)Event 15021System log
Status (October 2026): Public security updates are released for Exchange Server SE. Exchange 2016 and 2019 get updates only through the paid ESU programme, which ends with October 2026. Check the Exchange Team Blog for each release's known issues before you install.
Symptoms#
- OWA or ECP returns HTTP 500 after sign-in, with
Could not load file or assembly 'Microsoft.Exchange.Common…', or ECP shows no images. - The installer stops with "The upgrade patch cannot be installed by the Windows Installer service…".
- Setup fails part-way and Exchange services are left Disabled; mail flow stops.
- On a server without internet access, the install sits for a long time at "Creating Native images for .NET assemblies".
- Error code 1603 with "The installer has insufficient privileges to access this directory".
- Setup keeps asking for a restart even after several reboots.
Why it happens#
- SUs are tied to a CU. Each SU is a Windows Installer patch (.msp) built for one specific CU. Install an SU meant for another CU and Windows Installer refuses it.
- Elevation matters. Double-clicking the .msp on a server with User Account Control enabled can leave Exchange files and configuration inconsistent, which is the classic cause of OWA and ECP HTTP 500 errors.
- Services are disabled during install. The installer stops and disables Exchange services, then restores them at the end. If it fails in between, they stay disabled.
C:\ExchangeSetupLogs\ServiceControl.logrecords which ones were changed. - Offline servers wait on certificate checks. .NET native image generation tries to reach Microsoft's certificate revocation list for each assembly, and every request must time out first.
How to fix it#
- Confirm the build and the correct SU. Run
Get-Command ExSetup.exe | ForEach-Object { $_.FileVersionInfo.FileVersion }and compare the result with Microsoft's Exchange build numbers page. Download the SU for exactly that CU (or for SE RTM). - Bring the services back if they were left disabled. In an elevated PowerShell window (adjust the path if Exchange is installed elsewhere):
POP3 and IMAP4 aren't set to start automatically by default, so leave them alone unless you use them.PowerShell
cd "C:\Program Files\Microsoft\Exchange Server\V15\Bin" Add-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.Setup -ErrorAction SilentlyContinue .\ServiceControl.ps1 AfterPatch Get-Service -DisplayName "Microsoft Exchange*" | Where-Object { $_.DisplayName -notlike "*POP3*" -and $_.DisplayName -notlike "*IMAP4*" } | Start-Service - Reinstall the SU from an elevated prompt. Open Command Prompt with Run as administrator, type the full path of the .msp file, press Enter, and restart when it finishes. Do this even if the update already appears as installed.
- Repair OWA and ECP if they still fail. In IIS Manager open Sites › Exchange Back End › ecp › Application Settings and make sure
BinSearchFoldercontains real paths, not%ExchangeInstallDir%variables. Then in an elevated Exchange Management Shell:Restart the server and test again.PowerShellcd "C:\Program Files\Microsoft\Exchange Server\V15\Bin" .\UpdateCas.ps1 .\UpdateConfigFiles.ps1 iisreset - Fix the specific error using the table below.
- If a restart is always pending, run the Health Checker and Microsoft's
SetupAssist.ps1script from the CSS-Exchange project to find what still flags it. For CU setup failures,SetupLogReviewer.ps1 -SetupLog C:\ExchangeSetupLogs\ExchangeSetup.logreads the log and suggests a fix.
| Error | Cause | Fix |
|---|---|---|
| "The upgrade patch cannot be installed…" | SU and CU don't match | Get the SU for your CU, or update to the right CU first |
| "…this Interim Update is incompatible with the current … configuration" | An interim update is still installed, or an offline server can't check revocation | Uninstall the interim update in Programs and Features, or use the revocation workaround below |
| Long wait at "Creating Native images for .NET assemblies" | Revocation checks time out on an offline server | On tightly controlled servers only, temporarily clear Check for publisher's certificate revocation (Internet Options › Advanced › Security), and turn it back on afterwards |
Error code 1603, insufficient privileges on an owa\auth folder | Folder permissions or inheritance | Start the services and retry with a local administrator account; check Read for Authenticated Users, Full Control for SYSTEM and Administrators, and inheritance |
| HTTP 400 "Cannot serialize context", EMS won't connect | Admin account name ends in $ | Use an account without a trailing $ |
| Blank page after OWA or EAC sign-in, Event 15021 | Broken SSL binding on 0.0.0.0:444 | Reassign a valid certificate to the HTTPS bindings of Default Web Site (443) and Exchange Back End (444), then Restart-Service WAS,W3SVC |
| Mail flow stopped after the update | Services still stopped, server left in maintenance mode, or too little free space for the queue database | Start the services, take the server out of maintenance mode and free up disk space |
| Sign-in loop or "redirect limit", Event 1003 | Expired Auth (OAuth) certificate | Renew the Auth certificate |
Verify the fix#
Get-Command ExSetup.exe | ForEach-Object { $_.FileVersionInfo.FileVersion }
Get-Service -DisplayName "Microsoft Exchange*" | Where-Object StartType -eq "Disabled"
Test-ServiceHealth
Get-ServerComponentState $env:COMPUTERNAME | Where-Object State -ne "Active"Good looks like:
- The ExSetup version matches the build Microsoft lists for the SU you installed.
- No Exchange services are Disabled (unless you disabled one on purpose), and
RequiredServicesRunningis True. - Only
ForwardSyncDaemonandProvisioningRpsare inactive, so the server isn't stuck in maintenance mode. - OWA and the Exchange admin center sign in normally, mail flows, and the Health Checker lists no vulnerabilities for the server.
Prevent it next time#
- Restart the server before installing, so no restart is pending and services stop cleanly.
- Set proper antivirus exclusions, or turn file scanning off during the install.
- Always install from an elevated prompt, and download the SU that matches your CU.
- Check the Auth certificate's expiry date ahead of patch night:
Get-ExchangeCertificate -Thumbprint (Get-AuthConfig).CurrentCertificateThumbprint | Format-List Subject, NotAfter. - Patch DAG members one at a time in maintenance mode, as shown in my in-place upgrade walkthrough, and keep management-tools workstations on the same build.
- Run the Health Checker before and after every patch cycle.

