What does HRESULT 0xC80005F1 (hrCannotBeTagged) mean?

 
Previous Next
hrBadItagSequence hrRecordNotFound

hrCannotBeTagged

Where the operation crossed the contract

hrCannotBeTagged means an autoincrement or version column was defined with tagged or multivalued semantics.

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

The key comparison is: hrColumn2ndSysMaint concerns a second maintained column; this code rejects the storage form itself. The first useful observation is to capture column type and all JET_bitColumn flags in the creation request. This evidence separates schema definition, row-size accounting, null semantics, multivalue selection, and stale column IDs.

Reconstruct the engine state

  • Code-specific observation: capture column type and all JET_bitColumn flags in the creation request.
  • 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 conditionan autoincrement or version column was defined with tagged or multivalued semantics
First corrective directiondefine engine-maintained columns in their supported fixed form and place multivalued data elsewhere

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 0xC80005F1, the Jet API name, and the current instance/session ownership.
  2. Verify the code-specific precondition: capture column type and all JET_bitColumn flags in the creation request.
  3. Apply the targeted fix: define engine-maintained columns in their supported fixed form and place multivalued data elsewhere.
  4. Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.

Do not collapse these codes together

hrBadItagSequencethe requested multivalued-column instance number is invalid for the current row
hrColumn2ndSysMaintthe table is being given a second engine-maintained autoincrement or version column
hrBadColumnIdthe numeric JET_COLUMNID is invalid for the current table schema

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.