| Previous | Next |
| STATUS_TRANSACTION_NO_SUPERIOR | STATUS_TRANSACTION_NOT_ENLISTED |
STATUS_EXPIRED_HANDLE
The handle lost its association with the transaction
STATUS_EXPIRED_HANDLE indicates that a handle is no longer properly associated with its transaction. A common cause is that the handle was opened in a transactional resource manager that subsequently restarted or recovered.
This is a stale-handle condition tied to TxF resource-manager lifetime. Closing and reopening the object is usually the right direction; continuing to use the old handle risks operating against a transaction context that no longer exists.
What to check
- Resource-manager restart, recovery, or shutdown events on the affected volume.
- Handles kept open across service restart, crash recovery, or transaction-manager recovery.
- Whether the application retries by reopening the file in a fresh transaction context.
- Whether duplicated or inherited handles outlive the component that owns the transaction.
Useful distinction
STATUS_HANDLE_NO_LONGER_VALID often follows a transaction end or rollback. STATUS_EXPIRED_HANDLE emphasizes loss of association with the transactional resource manager.
References
- Microsoft: Kernel Transaction Manager
- Microsoft: KTM resource managers
- Microsoft: KTM objects
- Microsoft: Transactional NTFS overview
Looking for a different code? Search another status or error code.