What does HRESULT 0xC80005ED (hrBadColumnId) mean?

 
Previous Next
hrKeyIsMade hrBadItagSequence

hrBadColumnId

Interpretation in ESE terms

hrBadColumnId means the numeric JET_COLUMNID is invalid for the current table schema.

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

The key comparison is: hrColumnNotFound often follows a name lookup; this result points to a stale or foreign numeric ID. The first useful observation is to trace where the ID was obtained, schema changes, table identity, and cache invalidation. This evidence separates schema definition, row-size accounting, null semantics, multivalue selection, and stale column IDs.

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 conditionthe numeric JET_COLUMNID is invalid for the current table schema
First corrective directionrequery column metadata after schema changes and scope cached IDs to the exact table definition

Null, zero-length, deletion, and missing multivalue instances are distinct states. Fixed, variable, tagged, and long-value columns consume row space differently.

Comparison with adjacent failures

hrTooManyColumnsa table definition has reached the supported number of columns
hrBadItagSequencethe requested multivalued-column instance number is invalid for the current row
hrTaggedNotNULLa tagged-column operation used null semantics that are not valid for this representation or engine version

What to capture before retrying

  • Code-specific observation: trace where the ID was obtained, schema changes, table identity, and cache invalidation.
  • JET_COLUMNDEF fields, flags, code page, maximum length, and column ID origin.
  • the encoded value length, null/empty state, and itag sequence.
  • the complete row-size contribution from fixed, variable, tagged, and long-value data.

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.

Operational response

  1. Freeze the failing request context and record 0xC80005ED, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: trace where the ID was obtained, schema changes, table identity, and cache invalidation.
  3. Apply the targeted fix: requery column metadata after schema changes and scope cached IDs to the exact table definition.
  4. Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.

Technical references


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