| Previous | Next |
| hrLogDiskFull | hrBadDbSignature |
hrBadLogSignature
What this return value changes
hrBadLogSignature means a transaction log header signature does not match the expected log sequence.
The stored value is 0xC8000212 (negative JET error -530; -530). Current ESE documentation uses JET_errBadLogSignature for the corresponding published JET condition.
The first useful distinction is that this is stronger than a filename mismatch and differs from interior checksum corruption. Start by recording the full signature, generation, base name, file hash, source path, and expected database/log-set identity.
Objects and state involved
| Diagnostic layer | cryptographic-style ESE identity signatures linking database, logs, checkpoint, and backup set |
|---|---|
| Relevant API surface | soft recovery, hard recovery, database attachment, and backup verification |
| Code-specific condition | a transaction log header signature does not match the expected log sequence |
| Narrow corrective direction | replace the file only with the corresponding generation from the same verified log set |
ESE signatures identify lineage; they are not interchangeable with filenames or timestamps. A signature mismatch commonly indicates mixed files even when each file is individually readable.
Evidence worth preserving
- Code-specific observation: record the full signature, generation, base name, file hash, source path, and expected database/log-set identity.
How to distinguish nearby results
It specifically means that this is stronger than a filename mismatch and differs from interior checksum corruption. Related values below can appear in the same workflow but require a different response:
hrBadDbSignature | the database signature does not match the backup or log set used for recovery |
|---|---|
hrBadCheckpointSignature | the checkpoint signature is incompatible with the log sequence selected for recovery |
hrLogFileNotFound | an incremental Directory Service backup cannot assemble the required transaction-log set |
A safe response sequence
- Record it,
0xC8000212, the API name, the current phase, and all live context or file owners. - Verify the condition by recording the full signature, generation, base name, file hash, source path, and expected database/log-set identity.
- Apply only the targeted fix: replace the file only with the corresponding generation from the same verified log set.
Actions that can make diagnosis worse
- Do not patch signatures or headers.
- Do not choose files solely by matching names and dates.
Acceptance criteria for a fix
A useful regression test should force the condition “a transaction log header signature does not match the expected log sequence”, call one documented API transition, and assert the exact HRESULT.
Technical references
- ESE error codes — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- ESE files and signatures
- JetExternalRestore
- Microsoft JET_ERR enumeration
Looking for a different code? Search another status or error code.