Affected versions: Windows Server 2016

πŸ“– ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution β€” Primary Fix
  7. Solution β€” Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

MSI deployment on Windows Server 2016 ends with error 1603, blocking application rollout to production systems.

Environment & Reproduction

Reproduces during silent install of a vendor MSI when temp directories or installer service state are inconsistent.

msiexec /i app.msi /qn /l*v install.log

Root Cause Analysis

Error 1603 is a generic fatal failure caused by permission denials, missing prerequisites, or corrupt installer cache entries.

Quick Triage

Open the verbose log and search for the first ReturnValue 3 entry to locate the failing custom action.

Select-String -Path install.log -Pattern 'Return value 3'
Get-Service msiserver

Step-by-Step Diagnosis

Inspect installer state, permissions, and TEMP space.

Get-Acl C:WindowsInstaller | Format-List
Get-ChildItem $env:TEMP | Measure-Object Length -Sum
Illustrative mockup for windows-server-2016 β€” terminal_or_powershell
Diagnostic output for packaging/msi-1603 β€” Illustrative mockup β€” Progressive Robot

Solution β€” Primary Fix

Clear TEMP, restart Windows Installer service, and re-run with full logging from an elevated shell.

Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.

Remove-Item $env:TEMP* -Recurse -Force -ErrorAction SilentlyContinue
Restart-Service msiserver
Start-Process msiexec -ArgumentList '/i app.msi /qn /l*v C:logsapp.log' -Verb RunAs
Illustrative mockup for windows-server-2016 β€” error_dialog
Resolution for packaging/msi-1603 β€” Illustrative mockup β€” Progressive Robot

Solution β€” Alternative Approaches

Extract the MSI to a folder and re-run with administrative install context to bypass cached entries.

msiexec /a app.msi /qb TARGETDIR=C:extract

Verification & Acceptance Criteria

Install completes with exit code 0 and application registers correctly.

Get-WmiObject Win32_Product | Where Name -Like 'App*'

Rollback Plan

Use msiexec /x with the original product code to clean partial installation.

msiexec /x {PRODUCT-GUID} /qn

Prevention & Hardening

Validate MSI packages in a staging VM before production deployment and keep installer caches healthy.

Get-ChildItem C:WindowsInstaller*.msi

Related: error 1618 concurrent install, error 1722 custom action timeout, and Windows Installer service crashes.

Related tutorial: View the step-by-step tutorial for Windows Server 2016.

View all Windows Server 2016 tutorials on the Tutorials Hub β†’

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

Microsoft Learn troubleshooting guide for Windows Installer error codes and verbose log analysis.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β€” we respond within one business day.