What does HRESULT 0x80040E43 (DB_E_BOOKMARKSKIPPED) mean?

 
Previous Next
DB_E_BADRECORDNUM DB_E_BADPROPERTYVALUE

DB_E_BOOKMARKSKIPPED

Meaning

Windows documents DB_E_BOOKMARKSKIPPED as “Form of bookmark is valid, but no row was found to match it”. Here, a bookmark has a valid form but no row matching it is found in the current rowset.

Specific conditions that produce the result

  • Cause 1: the bookmarked row was deleted.
  • Cause 2: the row no longer satisfies the rowset filter.
  • Cause 3: the provider's bookmark persistence does not span the intervening change.

Relevant OLE DB contract

This result must be interpreted against this contract: OLE DB rowsets own HROW values, fetch position, granted properties and visibility rules; row handles, bookmarks, update state and navigation capabilities remain valid only under the lifetime and generation that produced them.

Evidence to collect before changing the system

When it involves row values, bookmarks, keys and query parameters, record types, lengths, hashes or redacted identifiers instead of secrets or full business data.

  • Evidence 1: the bookmark length and safe hash.
  • Evidence 2: rowset filter, chapter and generation.
  • Evidence 3: delete or update notifications affecting the row.

Corrective actions

  • Action 1: treat the missing row as an absence outcome.
  • Action 2: refresh bookmarks after filtering or rowset replacement.
  • Action 3: use stable application keys when persistence beyond rowset lifetime is required.

Practical incident

A saved bookmark remains structurally valid after a row is filtered out, so GetRowsAt cannot match it; locating the row by application key avoids repeated it.

Retry and recovery policy

Retry rule: retry only after obtaining a current bookmark or restoring a row that matches the rowset.

Difference from related HRESULT values

DB_E_BADBOOKMARK means the bookmark bytes are invalid, while DB_E_BOOKMARKSKIPPED means the form is valid but no row matches.

Official Microsoft references


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