| Previous | Next |
| hrColumnCannotIndex | hrNoCurrentIndex |
hrTaggedNotNULL
Where the operation crossed the contract
hrTaggedNotNULL means a tagged-column operation used null semantics that are not valid for this representation or engine version.
This is the legacy Directory Service backup/restore HRESULT form of JET_errTaggedNotNULL (0xC80005EA).
The key comparison is: hrNullInvalid is ordinary column nullability; this result is specific to tagged-column storage semantics. The first useful observation is to capture column flags, itag sequence, grbits, and whether the caller intended deletion, zero length, or null. 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 flags, itag sequence, grbits, and whether the caller intended deletion, zero length, or null.
- the complete row-size contribution from fixed, variable, tagged, and long-value data; associate it with this result rather than with a later generic exception.
- 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.
The ESE objects in play
| Diagnostic layer | column schema, row-size accounting, tagged/multivalued storage, and column identifiers |
|---|---|
| Typical API surface | JetAddColumn, JetDeleteColumn, JetSetColumn, JetRetrieveColumn, and JET_COLUMNDEF |
| Code-specific condition | a tagged-column operation used null semantics that are not valid for this representation or engine version |
| First corrective direction | use the documented tagged-value delete/set operation and distinguish null from empty 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.
Repair without destroying evidence
- Freeze the failing request context and record
0xC80005EA, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: capture column flags, itag sequence, grbits, and whether the caller intended deletion, zero length, or null.
- Apply the targeted fix: use the documented tagged-value delete/set operation and distinguish null from empty data.
- Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.
Do not collapse these codes together
hrRecordTooBig | the assembled row exceeds the record-size budget after fixed, variable, tagged, and key overhead are considered |
|---|---|
hrTooManyColumns | a table definition has reached the supported number of columns |
hrNullInvalid | the target column definition requires a non-null value |
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.
