| Previous | Next |
| hrCommunicationError | hrMissingExpiryToken |
hrFullBackupNotTaken
Where the workflow stopped
hrFullBackupNotTaken means the caller requested an incremental backup without a completed full backup recorded as its baseline.
The stored value is 0xC7FF000E (facility-specific HRESULT). The legacy symbolic name comes from the Windows Directory Service backup/restore message header.
The first useful distinction is that a full backup that merely started is not a baseline; hrIncrementalBackupDisabled means a prior baseline became unusable later. Start by inspecting backup type, catalog metadata, expiry token, database signature, and the success status of the last full DsBackupEnd.
Similar-looking outcomes
This result specifically means that a full backup that merely started is not a baseline; hrIncrementalBackupDisabled means a prior baseline became unusable later. Related values below can appear in the same workflow but require a different response:
hrLogFileNotFound | an incremental Directory Service backup cannot assemble the required transaction-log set |
|---|---|
hrMissingFullBackup | an incremental backup set does not have the earlier full backup required to establish its database baseline |
hrIncrementalBackupDisabled | the database lineage no longer permits the requested incremental backup and requires a new full baseline |
Objects and state involved
| Diagnostic layer | full-backup baseline, incremental descendants, retained log generations, and catalog lineage |
|---|---|
| Relevant API surface | DsBackupPrepare backup type, log enumeration/truncation, and ESE external backup |
| Code-specific condition | the caller requested an incremental backup without a completed full backup recorded as its baseline |
| Narrow corrective direction | complete and verify a full backup before requesting incremental mode |
An incremental backup depends on a previous full database image and a continuous required log history. Circular logging retires old generations based on checkpoint state rather than backup-chain retention needs.
Minimum useful trace
- Code-specific observation: inspect backup type, catalog metadata, expiry token, database signature, and the success status of the last full DsBackupEnd.
- Full and incremental backup IDs: capture the value and timestamp from the first occurrence.
- Database and log signatures: capture the value and timestamp from the first occurrence.
- Generation range and checkpoint: capture the value and timestamp from the first occurrence.
- Catalog and truncation history: capture the value and timestamp from the first occurrence.
Steps to resolve it
- Record it,
0xC7FF000E, the API name, the current phase, and all live context or file owners. - Verify the condition by inspecting backup type, catalog metadata, expiry token, database signature, and the success status of the last full DsBackupEnd.
- Apply only the targeted fix: complete and verify a full backup before requesting incremental mode.
Actions that can make diagnosis worse
- Do not combine an incremental set with an unrelated full backup.
- Do not delete logs manually to make a directory look clean.
Acceptance criteria for a fix
A useful regression test should force the condition “the caller requested an incremental backup without a completed full backup recorded as its baseline”, call one documented API transition, and assert the exact HRESULT.
Technical references
- AD backup walkthrough — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- ESE files and circular logging
- External backup sequence
- Microsoft JET_ERR enumeration
- Microsoft list of AD DS backup errors
Looking for a different code? Search another status or error code.