| Previous | Next |
| STATUS_TRANSACTIONAL_CONFLICT | STATUS_TRANSACTION_NOT_ACTIVE |
STATUS_INVALID_TRANSACTION
Validate the handle lifetime, access rights, and object type
KTM operations use kernel object handles, so an integer value alone is not sufficient evidence that a transaction is valid. The handle may be closed, inherited incorrectly, duplicated with insufficient access, associated with another process context, or refer to a different object type.
This status differs from a transaction that is valid but no longer active. First prove that the handle resolves to a transaction object; only then investigate commit, rollback, timeout, or recovery state.
What to inspect
- Record where the handle was created, duplicated, transferred, and closed.
- Query the transaction ID and information immediately after creation and again before the failing call.
- Check required KTM access rights for the exact operation.
- Look for use-after-close, stale cached handles, and cross-process transfer without DuplicateHandle or documented propagation.
References
- Microsoft Open Specifications: NTSTATUS values
- Microsoft: KTM objects and their relationships
- Microsoft: Kernel Transaction Manager functions
- Microsoft Windows SDK metadata: ktmw32.h
Looking for a different code? Search another status or error code.