| Previous | Next |
| ERROR_TRANSACTION_NOT_ROOT | ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED |
ERROR_TRANSACTION_OBJECT_EXPIRED
This error means a KTM handle has become invalid because its associated Transaction Manager or Resource Manager was closed. The handle is not a durable identifier that can be retained across manager shutdown, recovery boundaries, or component teardown.
Correct recovery pattern
- Stop using the expired handle; do not pass it into later KTM calls as a probe.
- Reopen or recreate the owning manager only after its own recovery requirements are satisfied.
- Open or create fresh transaction, resource-manager, and enlistment handles as needed for the resumed workflow.
- Reconcile the transaction outcome through the documented recovery path rather than assuming that a lost local handle means rollback.
Keep handle ownership explicit in services with asynchronous callbacks. A manager can be closed while queued work still holds an old transaction or enlistment handle; cancellation and lifetime tracking should prevent that callback from issuing a late KTM request.
See RecoverTransactionManager, KTM recovery APIs, and the system error-code definition.
Looking for a different code? Search another status or error code.