0X000036F8

SXS XML Invalid Version 0x36F8 Fix: Manifest Parse Error

Windows Errors Intermediate 👁 2 views 📅 Jun 6, 2026

Windows can't load a program or DLL because a manifest file has a bogus version number. Here's how to track it down and fix it fast.

You're staring at 0x36F8 and your app won't launch

Yeah, that error sucks. It usually pops up when you try to start an old program or a custom app that relies on side-by-side assemblies. The fix is straightforward once you know where to look.

The real fix: find and edit the manifest version

Windows Side-by-Side (SxS) loads XML manifest files that tell the system which DLL versions to use. When it hits ERROR_SXS_XML_E_INVALID_VERSION (0X000036F8), it means one of those manifests has a version string that doesn't match the expected format. The version must be in major.minor.build.revision format with four numbers separated by dots. Anything else—a letter, a missing dot, an extra space—and you get this error.

Here's the step-by-step that's worked for me dozens of times:

  1. Identify the failing application. The error dialog usually shows the EXE name or a DLL. Write it down.
  2. Check the application folder. Look in the same folder as the EXE for a file named app.exe.manifest or app.manifest. Also check subfolders named manifest or Manifest.
  3. Open the manifest in Notepad. Not Visual Studio, not Word—just Notepad. You want raw XML without any formatting noise.
  4. Search for version. You're looking for attributes like assemblyIdentity or requiredPrivileges that have a version= attribute. The version must be exactly X.Y.Z.W where each is a number (no leading zeros except for 0 itself).
  5. Fix the version numbers. I've seen all kinds of junk: 1.0.0.0a, 2.0.0 (missing a segment), 3.4.5.6.7 (too many). Correct them to valid four-part numbers. If you don't know the real version, use 1.0.0.0—it's a safe default for most old apps.

I had a client last month whose entire print queue died because of this—their label printing software had a manifest with 1.0.0 (three parts). Changing it to 1.0.0.0 fixed it instantly.

If the manifest isn't in the app folder

Sometimes the broken manifest is inside the EXE or DLL itself as a resource. Grab Resource Hacker (free, works on Win10/11) and open the file. Look under RT_MANIFEST or CREATEPROCESS_MANIFESTRESOURCE_ID. Extract the XML, fix the version, and recompile it back in. It sounds scary but it's just two clicks once you're in the tool.

Why this works

Windows SxS parser is picky about version strings. It calls StrToInt64ExW on each segment and expects only decimal digits. If any segment fails because it's not a valid number, you get 0x36F8. The fix just makes the version string comply with the parser's hardcoded rules. No magic, just XML housekeeping.

Less common variations of the same problem

Same error, different triggers:

  • Corrupted Windows Updates: A system update may have replaced a shared manifest with a bad one. Run sfc /scannow and then dism /online /cleanup-image /restorehealth. Fixed a medical app for a clinic last year that way.
  • Third-party antivirus mangling manifests: I've seen McAfee and Norton rewrite manifest files to add timestamps inside version strings. Uninstall the AV, reinstall the app, then reinstall the AV—or better, dump the bloatware.
  • Copy-paste from a PDF: Some PDFs embed hidden Unicode characters that look like spaces or dots but aren't. Open the manifest in a hex editor (like HxD) and look for byte sequences that aren't 2E (dot) or 20 (space). Replace them.
  • Custom-built apps with bad version templates: If you're a developer and your app uses a template manifest that includes $(Version) with a non-standard format, make sure your build script outputs 1.2.3.4.

How to prevent this from coming back

Most of the time, this error is a one-time artifact from a bad install or a file copy gone wrong. But if you're deploying internal software, here's what keeps it away:

  • Validate manifests with XML Schema. Before you ship or copy an app, run the manifests through a validator that checks version format. A quick PowerShell script can do it: Select-String -Path *.manifest -Pattern 'version="[\d]+\.[\d]+\.[\d]+\.[\d]+"' shows you mismatches.
  • Use the Windows SDK's Manifest Tool (mt.exe). Run mt.exe -validate_manifest -manifest:yourfile.manifest to catch version errors before deployment. I add this to every build script I set up.
  • Avoid manual edits. Never open a manifest in Word or any rich text editor—they add invisible formatting. Notepad, VS Code with no extensions, or a dedicated XML editor.

That's the whole playbook. Nine times out of ten, it's a manifest with a version string that has a stray character or missing segment. Hunt it down, fix the version to X.X.X.X, and you're back in business.

Was this solution helpful?