What does HRESULT 0xC80005EC (hrKeyIsMade) mean?

 
Previous Next
hrNoCurrentIndex hrBadColumnId

hrKeyIsMade

Why this is more specific than the message text

hrKeyIsMade means a new key-building sequence was started or modified after the current search key was already complete.

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

The key comparison is: hrKeyNotMade means no complete key exists; this is the opposite key-builder state. The first useful observation is to trace JetMakeKey calls, grbits, segment order, and the operation that consumes the key. This evidence separates index schema, current-index cursor state, key construction, and duplicate data.

Related ESE conditions

hrKeyDuplicatean insert or update would violate a unique or primary index key
hrKeyNotMadea seek or range operation was invoked before a complete search key was constructed
hrIndexNotFoundthe requested index name is valid but absent from the table

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 new key-building sequence was started or modified after the current search key was already complete
First corrective directionreset/start a new key explicitly and append segments in the documented order

Key bytes depend on segment order, column representation, collation, null rules, and sort direction. Clustered, primary, and unique properties must be interpreted from the actual index flags.

Data for a reproducible case

  • Code-specific observation: trace JetMakeKey calls, grbits, segment order, and the operation that consumes the key.
  • 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.
  • the raw index key definition, flags, locale, and conditional columns.

Corrective workflow

  1. Freeze the failing request context and record 0xC80005EC, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: trace JetMakeKey calls, grbits, segment order, and the operation that consumes the key.
  3. Apply the targeted fix: reset/start a new key explicitly and append segments in the documented order.
  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.