| Previous | Next |
| ERROR_TM_VOLATILE | ERROR_TXF_ATTRIBUTE_CORRUPT |
ERROR_ROLLBACK_TIMER_EXPIRED
The transaction rollback timer has already advanced past the scheduling point
ERROR_ROLLBACK_TIMER_EXPIRED belongs to the Windows Kernel Transaction Manager transaction-processing model. KTM transactions can carry timeout information and can be rolled back asynchronously. Once a previously scheduled rollback has executed or entered the execution queue, another attempt to schedule that rollback is too late. The condition is a transaction-state race, not a timer-resolution problem.
Log the transaction ID, timeout or rollback scheduling request, and current outcome state at each caller. Multiple watchdogs, cancellation paths, or a timeout callback racing with explicit rollback can all attempt the same transition. Centralize rollback ownership or make cancellation code outcome-aware. After this error, query transaction information and follow the actual rollback completion path rather than extending the timer or creating another scheduling request.
What to inspect
- Trace every component allowed to schedule or request rollback for the transaction.
- Check races between timeout callbacks, explicit cancellation, and service shutdown.
- Observe the final transaction outcome instead of retrying the expired rollback scheduling request.
References
- Microsoft: KTM programming model and transaction handles
- Microsoft: KTM transaction, TM, RM, and enlistment functions
- Microsoft: KTM transaction notifications
Looking for a different code? Search another status or error code.