What does HRESULT 0xC800051B (hrDensityInvalid) mean?

 
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 layertable and schema-object ownership, locks, and structural dependencies
Typical API surfaceJetOpenTable, JetCreateTableColumnIndex, JetDeleteTable, and schema enumeration APIs
Code-specific conditiona table or index density setting falls outside the engine-supported range
First corrective directionuse 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

hrContainerNotEmptya container-level delete or structural change was requested while dependent objects remain
hrIllegalOperationthe requested API is not supported for this table kind, cursor mode, or object state
hrTableNotEmptya 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

  1. Freeze the failing request context and record 0xC800051B, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: record the density value, API structure version, table/index type, and defaulting logic.
  3. Apply the targeted fix: use a documented density or omit the override and let ESE select its default.
  4. Before retrying the operation, reconcile object definition, exclusive-access state, and migration version.

Technical references


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