| Previous | Next |
| XACT_S_ALLNORETAIN | XACT_S_SINGLEPHASE |
XACT_S_ABORTING
Transaction abort is already in progress
XACT_S_ABORTING is HRESULT 315400 (0x0004D008) from winerror.h. The documented description is “An abort operation was already in progress.” The severity bit indicates a nonfailure result, but the value carries a specific condition that must not be collapsed into plain S_OK.
In the COM transaction and MSDTC protocol, this result means that an abort operation was already in progress. The application should preserve it until it has validated the exact condition represented by this return value.
What must be true before accepting it
Verify that the caller does not issue conflicting commit, enlist, or repeated abort operations while termination is underway. The documented condition must be demonstrated so this result is not mistaken for an unrelated success state.
Any state transition preceding this result must be included in rollback, continuation, and retry planning.
Where the status is encountered
- This result can be returned during ITransaction commit or abort processing; log the exact method and object state instead of interpreting the constant outside that contract.
- It can be returned during resource-manager enlistment and coordinated outcomes; log the exact method and object state instead of interpreting the constant outside that contract.
- It can be returned during transaction event-sink notification passes; log the exact method and object state instead of interpreting the constant outside that contract.
Evidence to preserve
- Preserve unit of work.
- Preserve abort initiator and reason.
- Preserve current transaction phase.
- Preserve outstanding resource callbacks.
- Preserve terminal abort event.
Correct handling and recovery
Wait for the terminal abort result using the coordinator’s completion mechanism. Cancel dependent work and preserve the first reason that initiated abort.
Use the code-specific next action; avoid treating all informational HRESULT values as retry signals.
Practical scenario
A timeout handler calls abort while another thread has already started it. The second thread receives this status and waits instead of racing a commit request.
Difference from nearby results
References
- Microsoft: COM transaction status codes — official Microsoft material relevant to this HRESULT.
- Microsoft: ITransaction::Commit
- Microsoft: ITransaction::Abort
- Microsoft: HRESULT values
Looking for a different code? Search another status or error code.
