| Previous | Next |
| hrInvalidBufferSize | hrIndexInUse |
hrColumnNotUpdatable
Locate the failure in the Jet call chain
hrColumnNotUpdatable means the selected column cannot be changed in the current schema or update mode.
This is the legacy Directory Service backup/restore HRESULT form of JET_errColumnNotUpdatable (0xC8000418).
The key comparison is: hrUpdateNotPrepared means no row update was started; this code is about the column itself or its mode. The first useful observation is to record column flags, current index, prepared update type, escrow/version/autoincrement status, and table kind. This evidence separates schema definition, row-size accounting, null semantics, multivalue selection, and stale column IDs.
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 | the selected column cannot be changed in the current schema or update mode |
| First corrective direction | write through a supported column/update path or redesign the schema instead of forcing the assignment |
Null, zero-length, deletion, and missing multivalue instances are distinct states. Fixed, variable, tagged, and long-value columns consume row space differently.
Questions the logs must answer
- Code-specific observation: record column flags, current index, prepared update type, escrow/version/autoincrement status, and table kind.
- 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; associate it with this result rather than with a later generic exception.
- JET_COLUMNDEF fields, flags, code page, maximum length, and column ID origin.
Response and verification
- Freeze the failing request context and record
0xC8000418, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: record column flags, current index, prepared update type, escrow/version/autoincrement status, and table kind.
- Apply the targeted fix: write through a supported column/update path or redesign the schema instead of forcing the assignment.
- Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.
Distinguishing signals
hrColumnNotFound | the requested column name or ID is absent from the current table schema |
|---|---|
hrColumnTooBig | the value exceeds the maximum length declared or supported for that column type |
hrColumnLong | a supplied value exceeds the operation or column path intended for ordinary-sized 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.
Technical references
Looking for a different code? Search another status or error code.