| Previous | Next |
| hrRestoreLogTooHigh | hrGivenLogFileIsNotContiguous |
hrGivenLogFileHasBadSignature
Where the workflow stopped
hrGivenLogFileHasBadSignature means a log supplied from backup media has a signature that does not belong to the restore sequence.
The stored value is 0xC800022B (negative JET error -555; -555). Current ESE documentation uses JET_errGivenLogFileHasBadSignature for the corresponding published JET condition.
The first useful distinction is that hrExistingLogFileHasBadSignature concerns a file already in the destination log path. Start by recording media set, copied filename, generation, header signature, file hash, and the expected backup log signature.
Similar-looking outcomes
This result specifically means that hrExistingLogFileHasBadSignature concerns a file already in the destination log path. Related values below can appear in the same workflow but require a different response:
hrGivenLogFileIsNotContiguous | the logs supplied from backup media contain a mandatory generation gap |
|---|---|
hrMissingRestoreLogFiles | hard recovery cannot reach consistency because one or more mandatory restore logs are absent |
hrTooManyIO | the engine reached its outstanding-I/O throttle and refused to queue more storage work |
Objects and state involved
| Diagnostic layer | the logs copied from backup media before they enter the target recovery path |
|---|---|
| Relevant API surface | backup-media extraction, validation, hard-recovery Phase I, and restore-log copying |
| Code-specific condition | a log supplied from backup media has a signature that does not belong to the restore sequence |
| Narrow corrective direction | recopy or replace the supplied log from the same backup set and verify it before recovery |
Supplied logs should be verified before they are mixed with any target-instance logs. Generation continuity and sequence signature are both required.
Minimum useful trace
- Code-specific observation: record media set, copied filename, generation, header signature, file hash, and the expected backup log signature.
- Media and file hashes: capture the value and timestamp from the first occurrence.
- Generation inventory: capture the value and timestamp from the first occurrence.
- Header signatures: capture the value and timestamp from the first occurrence.
- Copy errors and source set identity: capture the value and timestamp from the first occurrence.
Steps to resolve it
- Record it,
0xC800022B, the API name, the current phase, and all live context or file owners. - Verify the condition by recording media set, copied filename, generation, header signature, file hash, and the expected backup log signature.
- Apply only the targeted fix: recopy or replace the supplied log from the same backup set and verify it before recovery.
Actions that can make diagnosis worse
- Do not overwrite the media copy during diagnosis.
- Do not substitute a same-numbered log from another set.
Acceptance criteria for a fix
A useful regression test should force the condition “a log supplied from backup media has a signature that does not belong to the restore sequence”, call one documented API transition, and assert the exact HRESULT.
Technical references
- JetExternalRestore phases — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- ESE restore error codes
- ESE files
- Microsoft JET_ERR enumeration
Looking for a different code? Search another status or error code.