| Previous | Next |
| hrTableInUse | hrCannotRename |
hrObjectNotFound
Interpretation in ESE terms
hrObjectNotFound means a valid object name does not exist in the selected database or table scope.
This is the legacy Directory Service backup/restore HRESULT form of JET_errObjectNotFound (0xC8000519).
The key comparison is: hrInvalidObject means an object exists or handle resolves but is wrong for the operation. The first useful observation is to record database ID, object type, normalized name, schema version, and migration history. This evidence distinguishes name collisions, stale table handles, active users, locks, and structural dependencies.
The ESE objects in play
| Diagnostic layer | table and schema-object ownership, locks, and structural dependencies |
|---|---|
| Typical API surface | JetOpenTable, JetCreateTableColumnIndex, JetDeleteTable, and schema enumeration APIs |
| Code-specific condition | a valid object name does not exist in the selected database or table scope |
| First corrective direction | refresh schema metadata and fail the migration/query explicitly rather than substituting another object |
Object existence should be compared with the full expected definition before a migration is skipped. A JET_TABLEID is a cursor-like handle owned by a session, not a persistent table identifier.
Comparison with adjacent failures
hrObjectDuplicate | schema creation collided with an existing object name in the same namespace |
|---|---|
hrTableDuplicate | table creation reused a name already present in the database |
hrInvalidTableId | the JET_TABLEID is stale, closed, or belongs to another session/database |
What to capture before retrying
- Code-specific observation: record database ID, object type, normalized name, schema version, and migration history.
- all JET_TABLEID owners, open modes, transactions, and current indexes; associate it with this result rather than with a later generic exception.
- the exact schema migration step and whether a previous attempt committed.
- the table/object metadata and normalized name.
Actions that can hide or worsen the problem
- Do not force a schema mutation while table users remain active.
- Do not skip a migration merely because an object with the same name exists.
Operational response
- Freeze the failing request context and record
0xC8000519, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: record database ID, object type, normalized name, schema version, and migration history.
- Apply the targeted fix: refresh schema metadata and fail the migration/query explicitly rather than substituting another object.
- Before retrying the operation, reconcile object definition, exclusive-access state, and migration version.
Technical references
- JetOpenTable.
- JetCreateTableColumnIndex
- ESE functions
- JET error codes
- Microsoft: JET_ERR enumeration
Looking for a different code? Search another status or error code.