| Previous | Next |
| ERROR_PATCH_REMOVAL_DISALLOWED | ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT |
ERROR_INVALID_PATCH_XML
The Windows Installer patch contains invalid XML update data.
ERROR_INVALID_PATCH_XML is Win32 error 1650 (0x672). It is returned while Windows Installer is interpreting XML-based metadata associated with a patch package, before the requested update can be applied. The failure is about the patch artifact or the data supplied to the installer, not about the target application crashing. Retrying the same unchanged MSP normally reproduces the result because the invalid structure remains identical.
What commonly makes the patch data invalid
- the XML is not well-formed, is truncated, or contains an encoding declaration that does not match its bytes
- required elements, attributes, product identities, or sequencing data are absent or malformed
- a transform or packaging step escaped characters incorrectly or inserted unsupported markup
- the MSP was damaged during download, storage, signing, repackaging, or content inspection
- deployment software supplied XML that belongs to a different patch or Windows Installer schema version
Evidence worth preserving
Record the exact patch path, file size, SHA-256 hash, signer information, ProductCode and PatchCode when they can be read, Windows Installer version, command line, deployment source, and a verbose MSI log. Preserve the original MSP before opening it in authoring tools. Do not paste the entire installer log into public telemetry because property values can contain paths, account names, license data, or command-line secrets.
How to isolate the defect
First compare the package hash with the publisher or deployment repository. Run signature verification and test the same file on a clean machine with the intended product version. If every machine rejects the same hash, investigate the package rather than repairing Windows Installer on each endpoint.
Use the patch authoring and validation tools appropriate to the package to inspect summary information, transforms, applicability data, and XML-related tables or streams. Correlate error 1650 with the first detailed MSI log entry preceding it; the Win32 code alone does not identify the malformed element. Check whether security software rewrote or quarantined embedded content.
Recovery and packaging guidance
Obtain a corrected MSP from the publisher or rebuild it from authoritative sources. Do not edit a signed production patch in place, and do not bypass validation by extracting and copying individual binaries. After replacement, test install, repair, supersedence, rollback, and uninstall behavior against all supported product baselines.
Deployment systems should verify hashes before execution, retain the exact failed artifact, and stop automatic retries after a deterministic 1650 result. Package authors should include validation in CI and publish an immutable mapping between patch identity, target product versions, and file hash.
Difference from applicability and signature failures
ERROR_INVALID_PATCH_XML means the installer could not accept the patch metadata itself. A well-formed patch can instead be rejected because it targets a different product, is superseded, violates policy, or has an invalid signature. Those cases require different evidence and should not be collapsed into “bad XML.”
Example
An enterprise cache truncates an MSP while synchronizing it to a branch office. Every workstation reports 1650. The branch hash differs from the central repository, and the verbose MSI log stops while reading patch metadata. Replacing the cached file fixes the deployment; repeated repair of the endpoints would not.
References
- Microsoft: Windows Installer error codes
- Microsoft: System Error Codes (1300–1699)
- Microsoft: Patch packages
Looking for a different code? Search another status or error code.
