0X000036F3

Fix ERROR_SXS_XML_E_INVALIDENCODING (0X000036F3) Fast

Windows Errors Intermediate 👁 0 views 📅 May 26, 2026

This error means your app's manifest XML has a bad encoding declaration. The fix is to remove the UTF-8 BOM or fix the encoding line. Takes 2 minutes.

Yeah, this one's annoying. You launch an app and get hit with "The application has failed to start because its side-by-side configuration is incorrect" with error 0X000036F3. The manifest parser's choking on the encoding. Let's fix it.

The Quick Fix: Remove the UTF-8 BOM

The culprit here is almost always a Byte Order Mark (BOM) at the start of your .manifest or .exe's embedded manifest. Windows' SxS parser hates that. Here's how to kill it:

  1. Open the manifest file (usually app.exe.manifest or inside the exe as RT_MANIFEST) in Notepad++ or VS Code.
  2. Go to Encoding > Encode in UTF-8 without BOM.
  3. Save the file. If it's embedded, use mt.exe -manifest yourfile.manifest -outputresource:yourapp.exe;#1 to rebuild.
  4. Run the app again.

That's it 90% of the time. The BOM gets misinterpreted as part of the XML declaration, breaking the parser.

Why This Happens

Windows' side-by-side (SxS) manifest parser expects the XML to start with <?xml version="1.0" encoding="UTF-8"?> and nothing else before it. A BOM is three bytes (EF BB BF) that some editors sneak in. The parser sees them as garbage characters, then throws the invalid encoding error. It's not smart enough to skip the BOM.

The same error can pop up if someone manually edits the encoding declaration to something like encoding="UTF-16" but the file is actually UTF-8. Or if they paste in code from a web form that adds invisible Unicode characters.

Less Common Variations

Embedded Manifest in .exe or .dll

If the manifest is embedded, you can't just edit it like a text file. Use mt.exe from the Windows SDK:

mt.exe -inputresource:yourapp.exe;#1 -out:extracted.manifest
# Fix encoding in extracted.manifest
mt.exe -manifest extracted.manifest -outputresource:yourapp.exe;#1

Don't bother with resource hacker tools for this — they sometimes corrupt the manifest structure. Stick with mt.exe.

Multiple Manifests in One File

I've seen cases where a merge operation left two <assembly> sections with different encoding declarations. Only one is allowed. Check for duplicate <?xml?> lines or stray encoding attributes in child elements. Remove any extras.

Third-Party Installers Injecting Bad Manifests

Some older installers (looking at you, InstallShield 2012 era) would corrupt the manifest encoding during repackaging. If the app worked before a reinstall, uninstall fully, delete leftover files from %ProgramData% and %AppData%, then reinstall with the latest version of the installer.

Prevention for Developers

If you're building software that includes manifests:

  • Always set your text editor to save XML as UTF-8 without BOM. This should be default in VS Code. Notepad++ users — check under Encoding menu.
  • Use a pre-build step to strip BOMs: powershell -Command "(Get-Content manifest.xml) | Set-Content manifest.xml -Encoding UTF8NoBOM"
  • Test your manifests with sfc.exe /VERIFYONLY or the Windows SDK's Manifest Tool validation.
  • Never copy-paste manifest XML from a browser. The browser adds invisible characters. Type it yourself or use a proper editor.

What Doesn't Work

Skip reinstalling Visual C++ redistributables — this isn't about missing runtimes. Also don't waste time with DISM or SFC scans. They fix system files, not your app's manifest. And no, it's not a registry issue either.

Still Broken?

If the BOM removal doesn't help, grab the exact manifest file and run it through an online XML validator (like W3C's). The validator will catch encoding mismatches or stray characters. Or post the first 20 lines on Stack Overflow — someone's seen this before.

Was this solution helpful?