| Previous | Next |
| hrFLDTooManySegments | hrNoBackupDirectory |
hrLogFileCorrupt
What this return value changes
hrLogFileCorrupt means ESE detected structural or checksum corruption while reading a transaction log.
The stored value is 0xC80001F5 (negative JET error -501; -501). Current ESE documentation uses JET_errLogFileCorrupt for the corresponding published JET condition.
The first useful distinction is that a bad signature identifies lineage/header mismatch; log corruption can also occur inside an otherwise correctly named file. Start by preserving the exact generation, file hash, offset or sector, log header, storage events, and whether the file came from live storage or backup.
Objects and state involved
| Diagnostic layer | transaction-log format, checksum, version, and sequence identity |
|---|---|
| Relevant API surface | JetInit soft recovery, hard recovery, log backup, and log replay |
| Code-specific condition | ESE detected structural or checksum corruption while reading a transaction log |
| Narrow corrective direction | stop modifying the set, obtain a verified copy from the same lineage, and rerun recovery from a clean restore copy |
ESE uses write-ahead logs to reconstruct a transaction-consistent database after an unclean shutdown. A log filename is not enough; header signature, generation, version, and contents must agree.
Evidence worth preserving
- Code-specific observation: preserve the exact generation, file hash, offset or sector, log header, storage events, and whether the file came from live storage or backup.
How to distinguish nearby results
It specifically means that a bad signature identifies lineage/header mismatch; log corruption can also occur inside an otherwise correctly named file. Related values below can appear in the same workflow but require a different response:
hrLogBufferTooSmall | the available recovery log buffer cannot hold the log record or sector data required for replay |
|---|---|
hrBadLogVersion | the transaction log format is incompatible with the ESE version attempting to read it |
hrInvalidBackup | an incremental external backup was requested while circular logging prevents preservation of the required historical log range |
A safe response sequence
- Record it,
0xC80001F5, the API name, the current phase, and all live context or file owners. - Verify the condition by preserving the exact generation, file hash, offset or sector, log header, storage events, and whether the file came from live storage or backup.
- Apply only the targeted fix: stop modifying the set, obtain a verified copy from the same lineage, and rerun recovery from a clean restore copy.
Actions that can make diagnosis worse
- Do not edit or rename logs to force acceptance.
- Do not run destructive repair before preserving the original set.
Acceptance criteria for a fix
A useful regression test should force the condition “ESE detected structural or checksum corruption while reading a transaction log”, call one documented API transition, and assert the exact HRESULT.
Technical references
- ESE files and recovery — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- JetInit recovery behavior
- ESE error-code table
- Microsoft JET_ERR enumeration
Looking for a different code? Search another status or error code.