Fix 0X00003AA5: MSXML Validation Error in Event Logs
This error means your MSXML install doesn't support schema validation. A missing or broken MSXML 6.0 parser is the usual culprit. I'll show you how to fix it in a few steps.
You're looking at Event Viewer, trying to track down why some app or system component keeps failing. And there it is: ERROR_EVT_NON_VALIDATING_MSXML (0X00003AA5). This usually pops up when a program—like a scripting host, a custom management tool, or even Windows itself—tries to validate an XML file against a schema, but the Microsoft XML (MSXML) library registered on the box can't handle it. I've seen this most often on systems that had an older MSXML version (like 3.0 or 4.0) installed, then got an update that broke the registration, or on machines where someone manually unregistered a component.
What's Actually Happening?
The error code 0X00003AA5 translates to something like "the registered MSXML parser doesn't support validation." Windows uses MSXML for tons of behind-the-scenes tasks—Event Viewer XML rendering, WMI queries, and even some Windows Installer operations. The key player here is MSXML 6.0 (specifically msxml6.dll), which is the version that supports XML schema validation. If the system can't find it, or if its COM registration is busted, validation calls fail with this error.
A common trigger: after uninstalling an older MSXML redistributable (like from a third-party app), the registry key pointing to msxml6.dll gets overwritten or deleted. Another one: a botched Windows update that re-registers the older msxml3.dll as the default. The fix is straightforward—re-register or reinstall MSXML 6.0.
Fix It: Re-Register MSXML 6.0
Skip the wild goose chase. The most reliable fix is to re-register the MSXML 6.0 DLL. Here's exactly what to do:
- Open an elevated Command Prompt (Windows Key + X, then select "Command Prompt (Admin)" or "Terminal (Admin)"). You'll see the UAC prompt—click Yes.
- Type the following and hit Enter:
This unregisters the current (possibly broken) version.regsvr32 /u msxml6.dll - Then register it fresh:
You should see a success message. If you get aregsvr32 msxml6.dllDllRegisterServerfailure, the DLL might be missing or corrupted—skip to the next section. - Restart your machine. Don't skip this—some services cache the registration state.
Still Broken? Reinstall MSXML 6.0
If re-registering didn't work, the DLL itself is likely toast. Download and reinstall MSXML 6.0 from Microsoft's official site. On Windows 10 and 11, it's part of the system, so you can repair it via Features:
- Open Control Panel > Programs and Features.
- Click Turn Windows features on or off.
- Find Microsoft XML Core Services (or similar). Uncheck it, click OK, then restart.
- Go back and re-check it, then restart again.
If you're on Windows 7 or 8, grab the standalone installer from Microsoft KB 973686. Run it as administrator.
Check the Registry (For the Brave)
Sometimes the app calling the validation looks for a specific CLSID. Open regedit and navigate to HKEY_CLASSES_ROOT\Msxml2.DOMDocument.6.0. The default value should be Microsoft XML DOM Document. If it's pointing to msxml3.dll or msxml4.dll, that's your problem. Right-click and modify it back to msxml6.dll.
But honestly? Registry spelunking is a last resort. The re-register + reinstall combo fixes 9 out of 10 cases.
What If It Still Fails?
Check the app that triggered the error. Some old apps ship with their own MSXML version and register it globally. Open Event Viewer, find the specific log entry, and note the Source and Event ID. Search that—it might point you to a specific program that needs its own XML parser update. Also, run sfc /scannow from an admin command prompt to catch any system file corruption. If nothing works, a repair install of Windows (keeping your files) is the nuclear option—but I'd only go that route if the error is constant and blocking critical system functions.
Was this solution helpful?