| Previous | Next |
| CO_E_SERVER_STOPPING | MEM_E_INVALID_LINK |
MEM_E_INVALID_ROOT
MEM_E_INVALID_ROOT means a low-level allocation or structured-storage chain starts from a root block pointer that is outside the valid store layout or no longer identifies the expected root.
Where the failure sits
Structured-storage failures are best investigated on a byte-for-byte copy. Sector ownership, FAT or miniFAT links, stream sizes, commit state, and the file hash belong in the same record; opening and resaving the only copy can destroy the allocation pattern that identifies the writer defect.
MEM_E_INVALID_LINK identifies a bad link within a chain; MEM_E_INVALID_ROOT says the chain begins from an invalid root reference.
Facts to collect first
- Original compound file or storage image, size, hash, sector size, and header fields
- Root block index and the allocation table entries that lead from it
- The first IStorage/IStream operation that detects corruption
- Storage producer version and whether the file was truncated, partially copied, or concurrently modified
Identifiers, timestamps, versions, counts, state flags, hashes, and redacted paths normally provide enough correlation. Keep credentials, private keys, message bodies, recovery material, and personal data out of routine incident logs.
Change one variable at a time
- Open a known-good storage created by the same producer.
- Copy the suspect file before analysis and compare sector/allocation tables with a validator.
- Recreate the storage from source data rather than editing root pointers in place.
What the result does not prove
Read the comparison results in this order:
Verification after correction
The corrective action should be narrow: Restore or regenerate the compound storage from authoritative data and fix the writer/transfer path that produced the invalid root.
Close the incident only when the rebuilt storage opens, enumerates, commits, closes, and reopens under an independent structured-storage reader.
Technical references
The details above are grounded in the following Microsoft specifications and API documentation:
Looking for a different code? Search another status or error code.
