| Previous | Next |
| STATUS_TRANSACTION_NOT_ROOT | STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION |
STATUS_TRANSACTION_OBJECT_EXPIRED
STATUS_TRANSACTION_OBJECT_EXPIRED means that the associated transaction manager or resource manager was closed, leaving a previously obtained handle unusable. It is a lifetime failure: retaining the handle across manager shutdown, unload, or recovery boundaries is not valid.
Unlike STATUS_TRANSACTION_NOT_FOUND, this status commonly follows a handle that did exist. Unlike STATUS_TRANSACTION_NOT_ACTIVE, it points to the closure of the manager relationship rather than only a terminal transaction state.
A once-valid transaction object handle has expired
- Track ownership of TM, RM, enlistment, and transaction handles, including the teardown path that closed the manager.
- Close stale handles and reopen the required objects only after the transaction manager is online and the resource manager has recovered.
- Avoid caching KTM handles in long-lived workers without a lifecycle and cancellation strategy.
References
- Microsoft: KTM transaction managers and recovery
- Microsoft: creating a KTM resource manager
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.