What does HRESULT 0x88000652 (hrKeyChanged) mean?

 
Previous Next
hrwrnDataHasChanged hrFileOpenReadOnly

hrKeyChanged

Operational meaning

hrKeyChanged means cursor movement or update caused the current index key to change.

The stored value is 0x88000652 (positive JET status 1618; 1618). 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_wrnKeyChanged for the corresponding published JET condition.

The first useful distinction is that the record may still exist; the warning says its ordering key changed, not that it was deleted. Start by recording old and new key values, index identity, update columns, transaction level, and post-update cursor position.

Before altering files or retrying

  • Code-specific observation: record old and new key values, index identity, update columns, transaction level, and post-update cursor position.

Comparison points

It specifically means that the record may still exist; the warning says its ordering key changed, not that it was deleted. Related values below can appear in the same workflow but require a different response:

hrSeekNotEquala less-than-or-equal or greater-than-or-equal seek positioned the cursor without finding an exact key match
hrTableEmptythe table opened successfully but contains no current record for navigation
hrFLDKeyTooBigan index key exceeded the legacy key budget and was truncated rather than represented in full

Objects and state involved

Diagnostic layercursor position, current-record validity, and ordered index navigation
Relevant API surfaceseek, move, range, key construction, table open, and post-update navigation
Code-specific conditioncursor movement or update caused the current index key to change
Narrow corrective directionreseek or refresh range state before continuing ordered iteration

A warning can leave the cursor positioned on a valid non-equal record. Cursor state must be rechecked after updates, deletes, and key changes.

Recommended handling

  1. Record it, 0x88000652, the API name, the current phase, and all live context or file owners.
  2. Verify the condition by recording old and new key values, index identity, update columns, transaction level, and post-update cursor position.
  3. Apply only the targeted fix: reseek or refresh range state before continuing ordered iteration.

Actions that can make diagnosis worse

  • Do not assume ordered iteration remains valid after an indexed key changes.
  • Do not read columns before confirming a current record.

Technical references


Looking for a different code? Search another status or error code.