Fixing ERROR_SXS_XML_E_MISSINGROOT (0X000036E9) Manifest Error
This error pops up when Windows can't find the root element in a side-by-side manifest XML file. Usually means the manifest is empty or badly formed.
When This Error Shows Up
You're trying to run an older application — maybe a proprietary business tool or a custom-built .exe from 2015 — and it crashes immediately. Windows throws this error in the Application Event Log with Event ID 33 from source SideBySide. The error text says something like: "Manifest Parse Error: XML document must have a top-level element." The error code is 0X000036E9.
I've seen this most often with apps that bundle their own manifest file (either embedded in the .exe or sitting as a separate .manifest file in the same folder). The manifest tells Windows which version of the C++ runtime or common controls to load. If the manifest is empty or missing the root element, Windows throws its hands up.
Root Cause
The manifest file — usually named yourapp.exe.manifest — exists but has no XML root element. Maybe someone edited it and accidentally deleted the opening <assembly> tag. Maybe it got corrupted during an update. Or the app developer shipped a malformed manifest. Whatever happened, the XML parser can't find a top-level node, so it fails immediately.
Had a client last month whose entire print queue died because of this. Turned out a custom POS system had a manifest file with only a comment line — no root element. Spent two hours hunting before I found it.
The fix is straightforward: either repair the manifest or remove it so Windows falls back to default behavior. Here's how.
Step-by-Step Fix
Step 1: Identify the Faulty Manifest
Open Event Viewer (eventvwr.msc). Go to Windows Logs > Application. Look for Event ID 33 from Source SideBySide. Double-click the event — the description will tell you the exact path to the manifest file. Write that path down.
If the event log doesn't show the path (sometimes it's vague), use sxstrace.exe to get details. Open an elevated command prompt and run:
sxstrace.exe trace -logfile:sxs.etl
Then reproduce the error by running the app. Stop the trace with:
sxstrace.exe parse -logfile:sxs.etl -outfile:sxs.txt
Open sxs.txt — the manifest path will be listed in the error details.
Step 2: Inspect the Manifest
Navigate to that path in File Explorer. Right-click the .manifest file and open it in Notepad or a proper XML editor (I use Notepad++). You should see something like:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- assembly identity, dependencies, etc. -->
</assembly>
If the file is mostly empty — maybe just the XML declaration and no <assembly> tag — that's your problem. If the file is completely empty (0 bytes), same issue.
Step 3: Fix or Remove the Manifest
You have two choices:
Option A: Remove the manifest file (quickest, works 90% of the time). Just delete the .manifest file. Windows will use the embedded manifest in the .exe if it has one, or default settings. Rename it to yourapp.exe.manifest.bak first in case you need it back.
Option B: Repair the manifest (if you know what the manifest should contain). Copy a known-good manifest from a working version of the same app, or recreate the minimal structure above. I don't recommend writing one from scratch unless you understand the assembly dependencies — you'll just hit other SxS errors.
After making the change, try running the application again.
What to Check If It Still Fails
If the error persists, check these three things:
- Embedded manifest in the .exe: Some apps have an internal manifest that's corrupt. Use a tool like
mt.exe(part of Windows SDK) to extract it:mt.exe -inputresource:yourapp.exe;#1 -out:extracted.manifest. If that manifest is also missing the root element, you'll need to patch the .exe — or contact the vendor for a fixed version. - Multiple manifest files: A few apps look for
appname.exe.manifestandappname.manifestin the same folder. If both exist and one is bad, you'll see the error. Delete or rename the bad one. - Permissions: Rare, but if the manifest file is on a network share or a protected folder, Windows might not be able to read it. Move the app to a local folder (e.g.,
C:\Program Files\YourApp) and try again.
Most of the time, it's just a misformatted manifest file. Delete it, move on. If you're still stuck, check the exact application event log text and search for that path — you'll usually find the specific line causing the parse failure.
Was this solution helpful?