| Previous | Next |
| hrInvalidBackupSequence | hrDeleteBackupFileFail |
hrBackupNotAllowedYet
Where the workflow stopped
hrBackupNotAllowedYet means the instance is temporarily in a state where a backup cannot begin safely.
The stored value is 0xC800020B (negative JET error -523; -523). Current ESE documentation uses JET_errBackupNotAllowedYet for the corresponding published JET condition.
The first useful distinction is that this is not evidence that backup is permanently unsupported; hrNyi is the capability boundary. Start by capturing initialization/recovery status, attachment changes, active maintenance, restore state, and the first event indicating readiness.
Similar-looking outcomes
This result specifically means that this is not evidence that backup is permanently unsupported; hrNyi is the capability boundary. Related values below can appear in the same workflow but require a different response:
hrNoBackupDirectory | the external-backup operation has no destination directory configured for its temporary or copied artifacts |
|---|---|
hrBackupDirectoryNotEmpty | the selected backup destination contains artifacts that would make the new set ambiguous |
hrInvalidBackupSequence | backup APIs were called in an order that violates the ESE external-backup state machine |
Objects and state involved
| Diagnostic layer | the ESE external-backup state machine and its single active session |
|---|---|
| Relevant API surface | JetBeginExternalBackup, JetGetAttachInfo, JetOpenFile/ReadFile/CloseFile, JetGetLogInfo, and JetEndExternalBackup |
| Code-specific condition | the instance is temporarily in a state where a backup cannot begin safely |
| Narrow corrective direction | wait for the owning instance to reach a documented stable state, then begin with a fresh context |
Database files are enumerated and copied before the backup advances to the log-file phase. The engine tracks outstanding backup file handles and rejects calls made in the wrong phase.
Minimum useful trace
- Code-specific observation: capture initialization/recovery status, attachment changes, active maintenance, restore state, and the first event indicating readiness.
- Ordered API trace: capture the value and timestamp from the first occurrence.
- Instance and active backup owner: capture the value and timestamp from the first occurrence.
- Open backup file handles: capture the value and timestamp from the first occurrence.
- Database/log enumeration transition: capture the value and timestamp from the first occurrence.
Steps to resolve it
- Record it,
0xC800020B, the API name, the current phase, and all live context or file owners. - Verify the condition by capturing initialization/recovery status, attachment changes, active maintenance, restore state, and the first event indicating readiness.
- Apply only the targeted fix: wait for the owning instance to reach a documented stable state, then begin with a fresh context.
Actions that can make diagnosis worse
- Do not continue using a context after a sequence failure.
- Do not omit the final end/abort path.
Acceptance criteria for a fix
A useful regression test should force the condition “the instance is temporarily in a state where a backup cannot begin safely”, call one documented API transition, and assert the exact HRESULT.
Technical references
- Begin external backup — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- Enumerating backup logs
- End external backup
- Microsoft JET_ERR enumeration
Looking for a different code? Search another status or error code.
