| 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
hrKeyDuplicate | an insert or update would violate a unique or primary index key |
|---|---|
hrKeyNotMade | a seek or range operation was invoked before a complete search key was constructed |
hrIndexNotFound | the requested index name is valid but absent from the table |
The ESE objects in play
| Diagnostic layer | B-tree index definition, key construction, uniqueness, and current-index cursor state |
|---|---|
| Typical API surface | JetCreateIndex, JetDeleteIndex, JetSetCurrentIndex, JetMakeKey, JetSeek, and JetSetIndexRange |
| Code-specific condition | a new key-building sequence was started or modified after the current search key was already complete |
| First corrective direction | reset/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
- Freeze the failing request context and record
0xC80005EC, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: trace JetMakeKey calls, grbits, segment order, and the operation that consumes the key.
- Apply the targeted fix: reset/start a new key explicitly and append segments in the documented order.
- 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.