Site icon EfmSoft

What does HRESULT 0x8004E002 (CONTEXT_E_ABORTED) mean?

 
Previous Next
SL_REMAPPING_SP_STATUS_DEBUGGER_DETECTED CONTEXT_E_ABORTING

CONTEXT_E_ABORTED

CONTEXT_E_ABORTED is the failure HRESULT 0x8004E002 (signed decimal -2147164158, unsigned decimal 2147803138). Its severity bit is 1, facility is 4 (FACILITY_ITF), and the facility-specific code field is 0xE002.

The root component voted to finish, but the transaction could not commit

This result is observed at the automatic-transaction completion boundary. A root COM+ component may return success and call SetComplete, yet COM+ can replace that apparent success with this HRESULT when the coordinated transaction ultimately aborts.

AllStat describes the result as “The root transaction wanted to commit, but transaction aborted.” for it, this wording identifies the immediate COM+ condition, while surrounding context and earlier events determine why it was reached.

Contract boundary

The decisive event is the final outcome of the root transaction, not merely the return value produced inside the component method. Resource-manager votes, a timeout, a downstream abort vote, or an infrastructure failure can overturn a local commit vote after the business method has finished.

Causes that fit this specific result

Evidence to preserve before changing the system

Diagnostic sequence

Retry and recovery

Correct the participant, timeout, or communication condition that caused the abort. A retry is safe only after the original unit of work is known not to have committed and nontransactional side effects have been reconciled.

What the result does not establish

The code does not prove that the root component explicitly requested rollback. It also does not identify which resource manager rejected the transaction.

Difference from nearby HRESULT values

CONTEXT_E_ABORTING is returned when another method is called while the transaction is already aborting. XACT_E_ABORTED is a transaction-manager result without the same COM+ root-return-value context.

Practical scenario

An order component updates SQL and enqueues a transactional message, calls SetComplete, and returns success. The queue resource manager rejects prepare, so COM+ changes the client-visible result to this HRESULT and the service records the transaction UOW before deciding whether the order may be retried.

Developer and telemetry guidance

Telemetry should distinguish the method result, the component vote, and the final coordinated outcome. Alert on the first participant failure, not on every root object that receives the propagated abort.

Official Microsoft references


Looking for a different code? Search another status or error code.

Exit mobile version