| Previous | Next |
| hrBFPageNotFound | hrFLDKeyTooBig |
hrRemainingVersions
Interpretation in the backup state machine
hrRemainingVersions means version-store cleanup still has work queued after an idle-maintenance pass.
The stored value is 0x88000141 (positive JET status 321; 321). The HRESULT carries a warning, so the call may have useful output or a valid cursor state that must be inspected. Current ESE documentation uses JET_wrnRemainingVersions for the corresponding published JET condition.
The first useful distinction is that the warning reports unfinished maintenance, not immediate transaction failure. Start by measuring outstanding version pages, oldest transaction age, active sessions, and whether repeated idle calls make progress.
Start with these observations
- Code-specific observation: measure outstanding version pages, oldest transaction age, active sessions, and whether repeated idle calls make progress.
Objects and state involved
| Diagnostic layer | version-store and idle-maintenance scheduling |
|---|---|
| Relevant API surface | JetIdle-style maintenance, transaction cleanup, version reclamation, and background tasks |
| Code-specific condition | version-store cleanup still has work queued after an idle-maintenance pass |
| Narrow corrective direction | end or shorten transactions retaining old versions and schedule further idle work without spinning in a tight retry loop |
Long-running transactions can retain old record versions and delay reclamation. Idle work is opportunistic, so no-work and work-remaining results must both be handled without busy looping.
Recovery or retry plan
- Record it,
0x88000141, the API name, the current phase, and all live context or file owners. - Verify the condition by measuring outstanding version pages, oldest transaction age, active sessions, and whether repeated idle calls make progress.
- Apply only the targeted fix: end or shorten transactions retaining old versions and schedule further idle work without spinning in a tight retry loop.
Not the same as
It specifically means that the warning reports unfinished maintenance, not immediate transaction failure. Related values below can appear in the same workflow but require a different response:
hrNoIdleActivity | an idle-maintenance request found no eligible work to perform at that moment |
|---|---|
hrBadDbSignature | the database signature does not match the backup or log set used for recovery |
hrCouldNotConnect | the backup client could not establish the required session with the selected server or running Directory Service |
Actions that can make diagnosis worse
- Do not call idle maintenance in a tight loop without progress or backoff.
- Do not treat the warning as database corruption.
Acceptance criteria for a fix
A useful regression test should force the condition “version-store cleanup still has work queued after an idle-maintenance pass”, call one documented API transition, and assert the exact HRESULT.
Technical references
- JET_ERR warning semantics — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- ESE transaction model
- Open-source ESE implementation
Looking for a different code? Search another status or error code.