| Previous | Next |
| hrColumnNull | hrDatabaseAttached |
hrBufferTruncated
Interpretation in the backup state machine
hrBufferTruncated means the caller-provided output buffer did not hold the complete value even though the engine identified the value.
The stored value is 0x880003EE (positive JET status 1006; 1006). The HRESULT carries a warning, so the call may have useful output or a valid cursor state that must be inspected. Current ESE documentation uses JET_wrnBufferTruncated for the corresponding published JET condition.
The first useful distinction is that the value exists; hrColumnNull means no value exists and hrColumnMaxTruncated concerns a schema maximum being reduced. Start by capturing requested buffer size, actual required size, column type, retrieval flags, and whether partial data was intentionally permitted.
Start with these observations
- Code-specific observation: capture requested buffer size, actual required size, column type, retrieval flags, and whether partial data was intentionally permitted.
Objects and state involved
| Diagnostic layer | column NULL state, schema limits, and caller output-buffer contracts |
|---|---|
| Relevant API surface | JetRetrieveColumn, JetSetColumn, column enumeration, and schema creation |
| Code-specific condition | the caller-provided output buffer did not hold the complete value even though the engine identified the value |
| Narrow corrective direction | resize from the returned length or use a deliberate bounded-read policy without treating the partial bytes as complete |
JET warnings can carry valid output state and must not be reduced to a boolean failure. NULL, empty, defaulted, and truncated values are distinct application states.
Recovery or retry plan
- Record it,
0x880003EE, the API name, the current phase, and all live context or file owners. - Verify the condition by capturing requested buffer size, actual required size, column type, retrieval flags, and whether partial data was intentionally permitted.
- Apply only the targeted fix: resize from the returned length or use a deliberate bounded-read policy without treating the partial bytes as complete.
Not the same as
It specifically means that the value exists; hrColumnNull means no value exists and hrColumnMaxTruncated concerns a schema maximum being reduced. Related values below can appear in the same workflow but require a different response:
hrColumnNull | column retrieval found a genuine NULL value and therefore no payload bytes exist for that column |
|---|---|
hrColumnSetNull | a column update resulted in a NULL value as an explicit outcome |
hrRestoreLogTooHigh | the configured starting restore generation is above an available log that belongs to the required set |
Actions that can make diagnosis worse
- Do not replace NULL with an empty value without an explicit data-model rule.
- Do not decode an undefined or partial buffer as a complete value.
Technical references
- ESE warning table — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- JET_ERR enumeration
- Open-source ESE implementation
Looking for a different code? Search another status or error code.