STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED (0XC0190057) Fix
This error means a distributed transaction response can't find its enlistment. Common in SQL Server linked servers or MSDTC issues. Fix it by checking DTC config or query timeout first.
What's the 0XC0190057 Error?
You're working with a distributed transaction—maybe a linked server query in SQL Server Management Studio, or a cross-database operation—and boom. STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED (0XC0190057). The system can't match the response from a remote server to the original transaction enlistment. It's a messy state where the transaction coordinator (like MSDTC) loses track of who's supposed to respond.
I saw this last month with a client running SQL Server 2019 on Windows Server 2022. They had a linked server pulling data from an older SQL Server 2014 box. Every time they ran a cross-server update, the error popped after about 30 seconds. The fix? Not what they expected.
Cause #1: MSDTC Network Security Settings Blocking the Response
This is the most common cause—the Distributed Transaction Coordinator (MSDTC) on one of the machines isn't set up to allow network transactions. The remote server sends a response, but the local DTC says "nope, not enlisting this one."
How to fix it:
- Open Component Services on both servers (run
dcomcnfg). - Go to Component Services > Computers > My Computer > Distributed Transaction Coordinator > Local DTC. Right-click and choose Properties.
- On the Security tab, check these:
- "Network DTC Access" — enabled.
- "Allow Inbound" and "Allow Outbound" — enabled.
- "No Authentication Required" — usually the safest for internal networks. If you need security, pick "Mutual Authentication Required" but test first.
- Check Enable XA Transactions if you're using XA (like with Oracle).
- Click OK, restart the DTC service.
After that, test your query. If it still fails, move to cause #2.
Cause #2: Transaction Timeout Window Too Short
Sometimes the error isn't about access—it's timing. The calling application or SQL Server has a default transaction timeout that's too low. The remote server takes a few seconds to respond, and the local side gives up before the enlistment completes. The error code gets thrown as a side effect.
I had a case where a vendor's app used a 10-second timeout. Their linked server query needed 15 seconds because of network latency. The fix was bumping the timeout.
How to fix it:
- In SQL Server Management Studio, right-click the server and go to Properties > Connections.
- Under Remote query timeout, set it to 0 (no limit) or a higher value like 300 seconds.
- Also check the linked server timeout: run
EXEC sp_serveroption @server = 'YourLinkedServer', @optname = 'query timeout', @optvalue = '0'; - If it's a .NET app, adjust
TransactionTimeoutin your connection string—something likeTransaction Binding=Explicit Unbind; Transaction Timeout=00:05:00.
Cause #3: Corrupted DTC State or Log
Less common but nasty. The DTC log gets corrupted, usually after a crash, power failure, or forced reboot while transactions were in flight. The error then shows up for any new distributed transaction because the DTC can't track state properly.
I dealt with this at a logistics company. Their server had a blue screen during a batch job. After reboot, every cross-database insert failed with 0XC0190057. The DTC log was hosed.
How to fix it:
- Stop the DTC service on all machines involved.
- Delete the log files:
C:\Windows\System32\MSDTC\MSDTC.LOG(back it up first just in case). - Restart the DTC service—it recreates the log automatically.
- Run
msdtc -resetlogfrom an admin command prompt to force a clean log. - Reboot the server.
This nukes any incomplete transactions, so only do this if you're okay losing them (which you probably are if the app already failed).
Quick Reference Table
| Cause | Symptom | Fix |
|---|---|---|
| MSDTC network security settings | Error on any distributed query, often across servers | Enable network DTC access and inbound/outbound in Component Services |
| Transaction timeout too short | Error after a specific delay (e.g., 30 seconds) | Increase remote query timeout or app transaction timeout |
| Corrupted DTC log/state | Error after crash or power loss | Stop DTC, delete log, run msdtc -resetlog |
Start with cause #1. That's the fix in 80% of cases. Don't overthink it—check DTC security first, then timeout, then log. You'll be back to work in 10 minutes.
Was this solution helpful?