| Previous | Next |
| XACT_E_HEURISTICCOMMIT | XACT_E_HEURISTICDANGER |
XACT_E_HEURISTICDAMAGE
Heuristic damage confirms that the distributed state has diverged
XACT_E_HEURISTICDAMAGE means the system knows that some transaction branches committed while others aborted. Unlike an in-doubt state, this is not merely missing information: contradictory durable outcomes have already occurred.
Stop generic transaction retries and begin application-level reconciliation. Build a participant matrix showing branch ID, local outcome, affected records, and recovery action. The coordinator cannot restore atomicity after both outcomes are durable. Repair may require compensating committed work, reapplying aborted work, or placing affected entities in a controlled exception state. Preserve logs and prevent normal processing from acting on partially reconciled data.
Minimum incident record for heuristic damage
- Complete participant list and each confirmed outcome.
- Application records or messages changed by every branch.
- Time and actor responsible for any forced heuristic decision.
- Chosen compensation and validation procedure.
References
- Microsoft MS-DTCO: coordinator responsibility for one outcome
- The Open Group: heuristic mixed outcomes
- IETF: atomic agreement requirements for distributed transactions
Looking for a different code? Search another status or error code.