| Previous | Next |
| hrIndexMustStay | hrIndexHasClustered |
hrIndexInvalidDef
Diagnostic focus
hrIndexInvalidDef means the index key definition, flags, locale, or conditional metadata is internally invalid.
This is the legacy Directory Service backup/restore HRESULT form of JET_errIndexInvalidDef (0xC800057E).
The key comparison is: hrTooManyKeys isolates segment count and hrDensityInvalid isolates density; this result covers other definition faults. The first useful observation is to preserve the raw key-definition bytes/string, segment terminators, flags, locale, and API structure sizes. This evidence separates index schema, current-index cursor state, key construction, and duplicate data.
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 | the index key definition, flags, locale, or conditional metadata is internally invalid |
| First corrective direction | construct the definition from documented segments and validate each option independently |
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: preserve the raw key-definition bytes/string, segment terminators, flags, locale, and API structure sizes.
- the encoded key and existing row when uniqueness is involved; associate it with this result rather than with a later generic exception.
- the raw index key definition, flags, locale, and conditional columns.
- the current index plus every JetMakeKey segment and grbit.
Nearby results that mean something different
hrIndexInUse | an index definition is being used by an open cursor or operation that prevents the requested schema change |
|---|---|
hrIndexMustStay | the requested delete would remove an index required by the table layout, commonly the clustered index |
hrIndexHasPrimary | the table already has a primary index and the request attempts to define another |
A disciplined correction path
- Freeze the failing request context and record
0xC800057E, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: preserve the raw key-definition bytes/string, segment terminators, flags, locale, and API structure sizes.
- Apply the targeted fix: construct the definition from documented segments and validate each option independently.
- 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.