What does HRESULT 0xC8000648 (hrKeyNotMade) mean?

 
Previous Next
hrAlreadyPrepared hrUpdateNotPrepared

hrKeyNotMade

Diagnostic focus

hrKeyNotMade means a seek or range operation was invoked before a complete search key was constructed.

This is the legacy Directory Service backup/restore HRESULT form of JET_errKeyNotMade (0xC8000648).

The key comparison is: hrKeyIsMade is the opposite key-builder state. The first useful observation is to trace JetMakeKey calls, segment order, grbits, current index, and error handling between segments. This evidence separates index schema, current-index cursor state, key construction, and duplicate data.

The ESE objects in play

Diagnostic layerB-tree index definition, key construction, uniqueness, and current-index cursor state
Typical API surfaceJetCreateIndex, JetDeleteIndex, JetSetCurrentIndex, JetMakeKey, JetSeek, and JetSetIndexRange
Code-specific conditiona seek or range operation was invoked before a complete search key was constructed
First corrective directionbuild a fresh key for the selected index and check every JetMakeKey result before seeking

Index schema and runtime key-building state are separate diagnostic layers. Key bytes depend on segment order, column representation, collation, null rules, and sort direction.

Evidence that resolves the ambiguity

  • Code-specific observation: trace JetMakeKey calls, segment order, grbits, current index, and error handling between segments.
  • the raw index key definition, flags, locale, and conditional columns; associate it with this result rather than with a later generic exception.
  • the current index plus every JetMakeKey segment and grbit; associate it with this result rather than with a later generic exception.
  • the encoded key and existing row when uniqueness is involved.

Nearby results that mean something different

hrKeyIsMadea new key-building sequence was started or modified after the current search key was already complete
hrNoCurrentIndexthe cursor operation requires an active index but none is selected or available
hrKeyDuplicatean insert or update would violate a unique or primary index key

A disciplined correction path

  1. Freeze the failing request context and record 0xC8000648, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: trace JetMakeKey calls, segment order, grbits, current index, and error handling between segments.
  3. Apply the targeted fix: build a fresh key for the selected index and check every JetMakeKey result before seeking.
  4. Before retrying the operation, reconcile index definition, selected cursor index, and key or uniqueness outcome.

Actions that can hide or worsen the problem

  • Do not drop or rebuild an index before checking uniqueness and table-layout dependencies.
  • Do not treat a key-construction or duplicate-key result as database-file corruption.

Technical references


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