| Previous | Next |
| hrCannotRename | hrTableNotEmpty |
hrDensityInvalid
Interpretation in ESE terms
hrDensityInvalid means a table or index density setting falls outside the engine-supported range.
This is the legacy Directory Service backup/restore HRESULT form of JET_errDensityInvalid (0xC800051B).
The key comparison is: hrIndexInvalidDef covers the entire key definition; this result isolates density. The first useful observation is to record the density value, API structure version, table/index type, and defaulting logic. This evidence distinguishes name collisions, stale table handles, active users, locks, and structural dependencies.
The ESE objects in play
| Diagnostic layer | table and schema-object ownership, locks, and structural dependencies |
|---|---|
| Typical API surface | JetOpenTable, JetCreateTableColumnIndex, JetDeleteTable, and schema enumeration APIs |
| Code-specific condition | a table or index density setting falls outside the engine-supported range |
| First corrective direction | use a documented density or omit the override and let ESE select its default |
Object existence should be compared with the full expected definition before a migration is skipped. A JET_TABLEID is a cursor-like handle owned by a session, not a persistent table identifier.
Comparison with adjacent failures
hrContainerNotEmpty | a container-level delete or structural change was requested while dependent objects remain |
|---|---|
hrIllegalOperation | the requested API is not supported for this table kind, cursor mode, or object state |
hrTableNotEmpty | a clustered-index definition or structural operation requires an empty table but rows already exist |
What to capture before retrying
- Code-specific observation: record the density value, API structure version, table/index type, and defaulting logic.
- the exact schema migration step and whether a previous attempt committed.
- the table/object metadata and normalized name.
- all JET_TABLEID owners, open modes, transactions, and current indexes.
Actions that can hide or worsen the problem
- Do not force a schema mutation while table users remain active.
- Do not skip a migration merely because an object with the same name exists.
Operational response
- Freeze the failing request context and record
0xC800051B, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: record the density value, API structure version, table/index type, and defaulting logic.
- Apply the targeted fix: use a documented density or omit the override and let ESE select its default.
- Before retrying the operation, reconcile object definition, exclusive-access state, and migration version.
Technical references
- JetOpenTable.
- JetCreateTableColumnIndex
- ESE functions
- JET error codes
- Microsoft: JET_ERR enumeration
Looking for a different code? Search another status or error code.