What does HRESULT 0xC80005E6 (hrColumn2ndSysMaint) mean?

 
Previous Next
hrColumnDuplicate hrInvalidColumnType

hrColumn2ndSysMaint

Why this is more specific than the message text

hrColumn2ndSysMaint means the table is being given a second engine-maintained autoincrement or version column.

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

The key comparison is: hrCannotBeTagged concerns multivalue/tagged form; this code concerns duplicate maintenance semantics. The first useful observation is to enumerate column flags and identify the existing system-maintained column. This evidence separates schema definition, row-size accounting, null semantics, multivalue selection, and stale column IDs.

Related ESE conditions

hrCannotBeTaggedan autoincrement or version column was defined with tagged or multivalued semantics
hrColumnCannotIndexthe selected long-value or otherwise unsupported column cannot participate in an index key
hrBadItagSequencethe requested multivalued-column instance number is invalid for the current row

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 table is being given a second engine-maintained autoincrement or version column
First corrective directionretain one autoincrement/version role and model any additional sequence in application data

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.

Data for a reproducible case

  • Code-specific observation: enumerate column flags and identify the existing system-maintained column.
  • 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.
  • JET_COLUMNDEF fields, flags, code page, maximum length, and column ID origin.

Corrective workflow

  1. Freeze the failing request context and record 0xC80005E6, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: enumerate column flags and identify the existing system-maintained column.
  3. Apply the targeted fix: retain one autoincrement/version role and model any additional sequence in application data.
  4. Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.

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.