| Previous | Next |
| ERROR_TRANSACTION_NO_SUPERIOR | ERROR_TRANSACTIONAL_CONFLICT |
ERROR_HEURISTIC_DAMAGE_POSSIBLE
The transaction tree may contain divergent committed and aborted data
ERROR_HEURISTIC_DAMAGE_POSSIBLE belongs to the Windows Kernel Transaction Manager transaction-processing model. Atomic transaction coordination expects all participants to follow one final outcome. A heuristic outcome means at least part of the transaction tree made an independent decision instead of completing the globally coordinated result. The error warns that some data may have committed while other data did not. This is much more serious than a clean rollback because application-level invariants can be split across resource managers.
Stop automatic replay until the affected business operation and every durable participant are identified. Use the transaction ID and coordinator logs to determine the final outcome reported to each branch, then compare the actual resource state. Recovery APIs can redeliver commit or in-doubt notifications, but they cannot infer application consistency after a participant has made a conflicting heuristic choice. Reconcile data using domain-specific rules and preserve coordinator evidence for root-cause analysis.
What to inspect
- Identify every RM and subordinate branch that participated in the transaction.
- Compare coordinator outcomes with the durable state of each resource.
- Do not blindly retry the original operation; duplicate effects can worsen heuristic inconsistency.
References
- MS-DTCO: superior and subordinate transaction-manager roles
- Microsoft: KTM recovery processing and presumed abort
- Microsoft: KTM transaction notifications
Looking for a different code? Search another status or error code.