| Previous | Next |
| XACT_E_NORESOURCE | XACT_E_NOTRANSACTION |
XACT_E_NOTCURRENT
Prepared data no longer matches the version observed during the transaction
XACT_E_NOTCURRENT reports an optimistic concurrency failure: a resource manager detected that state read or staged by the transaction was changed before commit. The coordinator cannot repair that conflict because it is defined by the resource manager’s version, timestamp, row, object, or cache validation rules.
Identify the participant that rejected preparation and capture its native conflict details. The correct response is usually to abandon the transaction, reread current state, reapply the business decision, and start a new unit of work. Reissuing commit on the same transaction is invalid because the old read set and assumptions have already failed validation.
Conflict information to retain for a safe retry
- Resource and version token used by the transaction.
- Current version observed at prepare time.
- Competing operation that changed the resource.
- Business rule used to merge, reject, or recalculate the update.
References
- Microsoft MS-DTCO: prepare voting and abort decisions
- Microsoft MS-DTCO: resource-manager voting policy
- PostgreSQL: prepare before external commit coordination
Looking for a different code? Search another status or error code.
