| Previous | Next |
| hrFLDKeyTooBig | hrExistingLogFileHasBadSignature |
hrFLDNullKey
Where the workflow stopped
hrFLDNullKey means key construction produced a NULL key for the current record or index expression.
The stored value is 0x88000192 (positive JET status 402; 402). The HRESULT carries a warning, so the call may have useful output or a valid cursor state that must be inspected. The legacy symbolic name comes from the Windows Directory Service backup/restore message header.
The first useful distinction is that NULL is a data state, not the same condition as an empty string, zero-length binary value, or missing record. Start by capturing the indexed columns, null flags, conditional-index rules, and the API result that consumed the key.
Similar-looking outcomes
This result specifically means that NULL is a data state, not the same condition as an empty string, zero-length binary value, or missing record. Related values below can appear in the same workflow but require a different response:
hrFLDKeyTooBig | an index key exceeded the legacy key budget and was truncated rather than represented in full |
|---|---|
hrBadLogVersion | the transaction log format is incompatible with the ESE version attempting to read it |
hrMakeBackupDirectoryFail | ESE could not create the temporary directory required by the backup workflow |
Objects and state involved
| Diagnostic layer | index key construction, NULL semantics, and legacy key limits |
|---|---|
| Relevant API surface | index definition, key creation, seeks, ranges, and record updates that change indexed values |
| Code-specific condition | key construction produced a NULL key for the current record or index expression |
| Narrow corrective direction | handle the NULL-key branch explicitly and align index predicates with the application data model |
An index key is derived data whose byte representation depends on schema, locale, and column values. A warning can leave a usable cursor or index entry while changing exact-match or uniqueness assumptions.
Minimum useful trace
- Code-specific observation: capture the indexed columns, null flags, conditional-index rules, and the API result that consumed the key.
- Index definition and segment order: capture the value and timestamp from the first occurrence.
- Normalized key length and bytes: capture the value and timestamp from the first occurrence.
- NULL and conditional-index rules: capture the value and timestamp from the first occurrence.
- Seek or insert result: capture the value and timestamp from the first occurrence.
Steps to resolve it
- Record it,
0x88000192, the API name, the current phase, and all live context or file owners. - Verify the condition by capturing the indexed columns, null flags, conditional-index rules, and the API result that consumed the key.
- Apply only the targeted fix: handle the NULL-key branch explicitly and align index predicates with the application data model.
Actions that can make diagnosis worse
- Do not compare only the source text when the stored key is normalized or truncated.
- Do not collapse NULL and empty values in diagnostics.
Acceptance criteria for a fix
A useful regression test should force the condition “key construction produced a NULL key for the current record or index expression”, call one documented API transition, and assert the exact HRESULT.
Technical references
- ESE warnings and errors — 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.