Cause #1: Broken compound document file (most common)
What's happening: the file is a 'compound document' — think of it like a zip file that holds several internal streams. One of those streams (named 'CompObj' or 'Contents') is missing or corrupt. Windows throws 0x800401C5 when it tries to open it.
I see this most often with Thunderbird mailbox files (like Inbox, Sent) after a crash, a bad backup restore, or a copy-paste that got interrupted halfway. Also happens with old Excel or PowerPoint files from Office 2003 era.
Fix: Rebuild the file from a backup or repair it
- If it's a Thunderbird profile file — don't waste time. Close Thunderbird, rename the broken file (e.g., Inbox to Inbox.broken), and let Thunderbird create a fresh one. Then drag emails from a backup if you have one.
- If it's an Office file — try Open and Repair in Word/Excel (File → Open → select file → down arrow next to Open → choose Open and Repair).
- If neither works — install SSTICopy (a free tool). It can sometimes extract surviving data from the broken compound file. Run:
SSTICopy broken.file output.file
Why step 3 works: SSTICopy walks the internal stream table manually instead of relying on the broken header. It's ugly but often pulls out the data.
Cause #2: NTFS metadata corruption on the drive or volume
The file itself might be fine, but the NTFS Master File Table (MFT) lost track of one of the file's attribute streams. This happens after a sudden power loss, a failing hard drive, or a bad SATA cable. You get the error on random files, not just one type.
Fix: Run CHKDSK and SFC
- Open Command Prompt as Administrator.
- Run:
(replace C: with your drive letter). You'll be asked to schedule it on next reboot. Reboot.chkdsk C: /f /r - After CHKDSK finishes, run:
sfc /scannow - If SFC finds errors, run:
DISM /Online /Cleanup-Image /RestoreHealth
The reason CHKDSK fixes stream problems: it rebuilds the MFT's attribute list from the file's raw data on disk. It might mark the file as 'unusable' if it's too damaged — that's better than the error popping up endlessly.
Cause #3: OLE structured storage version mismatch (rare, older systems)
You copied a file from a Windows 2000 or XP machine to a Windows 10/11 system. The compound document format changed slightly — the 'Contents' stream uses a different GUID. The error triggers because the stream exists but the GUID is wrong.
Fix: Convert with OleDocInfo or a hex editor
- Download OleView .NET (free). Open the file with it.
- Look at the 'Standard Stream' section. If it says 'Unknown GUID' you have a mismatch.
- Use a hex editor (like HxD) to change the GUID in the file header manually. The right GUID for OLE2 is:
{0003000C-0000-0000-C000-000000000046}. Find bytes at offset 0x40 to 0x5F and replace them.
Skip this fix if you're not comfortable with hex editing. It's safer to open the file in a virtual machine with the original OS and resave it in a modern format.
Quick-reference summary
| Cause | Where it appears | Best fix |
|---|---|---|
| Broken compound document | Thunderbird mail files, old Office docs | Rebuild or Open & Repair |
| NTFS metadata corruption | Random files on any NTFS drive | CHKDSK + SFC + DISM |
| OLE version mismatch | Files from W2K/XP on Win10/11 | OleView or hex GUID fix |
If none of that works, try copying the file to a USB stick, then back to a different folder. Sometimes the OS re-writes the stream metadata and fixes the issue. But honestly — if it's a critical file, get it off the drive fast and use a recovery tool like R-Studio before the disk fails completely.