What does HRESULT 0xC80005E4 (hrColumnDuplicate) mean?

 
Previous Next
hrColumnNotFound hrColumn2ndSysMaint

hrColumnDuplicate

Where the operation crossed the contract

hrColumnDuplicate means column creation reused a name already defined in the table.

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

The key comparison is: hrObjectDuplicate is namespace-generic; this code isolates a column collision. The first useful observation is to enumerate column metadata and compare type, flags, code page, and maximum length with the desired definition. This evidence separates schema definition, row-size accounting, null semantics, multivalue selection, and stale column IDs.

Reconstruct the engine state

  • Code-specific observation: enumerate column metadata and compare type, flags, code page, and maximum length with the desired definition.
  • JET_COLUMNDEF fields, flags, code page, maximum length, and column ID origin; associate it with this result rather than with a later generic exception.
  • the encoded value length, null/empty state, and itag sequence; associate it with this result rather than with a later generic exception.
  • the complete row-size contribution from fixed, variable, tagged, and long-value data.

The ESE objects in play

Diagnostic layercolumn schema, row-size accounting, tagged/multivalued storage, and column identifiers
Typical API surfaceJetAddColumn, JetDeleteColumn, JetSetColumn, JetRetrieveColumn, and JET_COLUMNDEF
Code-specific conditioncolumn creation reused a name already defined in the table
First corrective directionmake the migration idempotent only when the existing definition is semantically identical

Column IDs are metadata scoped to a table and should be refreshed after schema changes. Null, zero-length, deletion, and missing multivalue instances are distinct states.

Repair without destroying evidence

  1. Freeze the failing request context and record 0xC80005E4, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: enumerate column metadata and compare type, flags, code page, and maximum length with the desired definition.
  3. Apply the targeted fix: make the migration idempotent only when the existing definition is semantically identical.
  4. Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.

Do not collapse these codes together

hrColumnDoesNotFitthe field update cannot fit in the current record layout and remaining row budget
hrColumnInUsea schema change targets a column that an index or other active definition still depends on
hrColumnCannotIndexthe selected long-value or otherwise unsupported column cannot participate in an index key

Actions that can hide or worsen the problem

  • Do not alter the column schema in place without a migration and rollback plan.
  • Do not collapse null, zero-length data, missing value, and tagged-value deletion into one state.

Technical references


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