| Previous | Next |
| XACT_E_TIP_PULL_FAILED | XACT_E_TIP_DISABLED |
XACT_E_DEST_TMNOTAVAILABLE
XACT_E_DEST_TMNOTAVAILABLE is the failure HRESULT 0x8004D022 (signed decimal -2147168222, unsigned decimal 2147799074). Its severity bit is 1, facility is 4 (FACILITY_ITF), and the facility-specific code field is 0xD022.
Propagation reached a destination whose transaction manager cannot participate
This HRESULT identifies the transaction manager on the destination machine as unavailable. It is narrower than a generic application connection error: distributed transaction propagation needs a participating coordinator at the remote boundary.
AllStat records the Windows message as: “The Transaction Manager on the destination machine is not available.” This text should be interpreted at the transaction stage described below rather than as a generic COM failure.
The contract boundary to identify
The destination application or database can be reachable while its transaction manager is stopped, unhealthy, unregistered, or inaccessible under DTC policy. Ordinary connectivity tests therefore do not prove that the coordinator path works.
Likely causes to separate
- MSDTC is stopped, starting, recovering, or disabled on the destination host.
- The destination service is reachable but network DTC access or inbound participation is disabled.
- Name resolution directs DTC to a different host or stale machine identity.
- RPC endpoint mapping or the configured DTC port is unavailable from the source coordinator.
Evidence worth preserving
- Record source and destination host names as resolved by each side, DTC instance names, and transaction UOW.
- Capture service state and MSDTC events on the destination during the propagation attempt.
- Run
Test-Dtcbetween the actual participating computers and retain each subtest result. - Log firewall and endpoint-mapper evidence instead of relying only on an application-level ping.
Diagnostic sequence
- Verify that the intended destination DTC instance is running and not stuck in recovery.
- Check inbound and outbound network transaction policy on both coordinators.
- Validate bidirectional name resolution and RPC/DTC port reachability.
- After service restoration, confirm the original transaction outcome before opening a replacement transaction.
Retry and recovery
Restore the destination coordinator and its network policy, then test DTC propagation independently. Retry business work only when it is safe to determine that the earlier attempt did not commit remotely or when the operation is idempotent.
What this HRESULT does not establish
This result does not prove that the database or application service itself is down. It also does not identify a firewall specifically; service state, policy, identity, and RPC reachability remain separate branches.
Difference from nearby transaction results
XACT_E_TMNOTAVAILABLE is a general transaction-manager availability result. XACT_E_PUSH_COMM_FAILURE and XACT_E_PULL_COMM_FAILURE explicitly identify communication failure during propagation direction.
Practical scenario
A web server reaches a remote SQL listener, but the destination MSDTC service was disabled after hardening. The database connection succeeds and promotion fails with this HRESULT. Operations restore approved DTC settings, verify with Test-Dtc, and reconcile the original request.
Guidance for software and telemetry
Health checks for distributed applications should test the DTC path, not only the resource endpoint. Correlate service restarts and security-policy changes with the first failed propagation.
Official Microsoft references
- Microsoft: COM transaction error codes
- Microsoft: Test-Dtc
- Microsoft: configure DTC through firewalls
- Microsoft: MSDTC security and network access
- Microsoft: HRESULT values in MS-ERREF
Looking for a different code? Search another status or error code.
