0X8004D10D

Fix XACT_E_LU_NO_RECOVERY_PROCESS (0X8004D10D) in MSDTC

The XACT_E_LU_NO_RECOVERY_PROCESS error pops up when MSDTC can't start its LU recovery process. This guide walks you through restarting services and checking cluster config.

You're mid-deployment, and suddenly your app throws XACT_E_LU_NO_RECOVERY_PROCESS (0X8004D10D). This usually happens right after a server reboot or when the Distributed Transaction Coordinator (MSDTC) service crashes. I've seen it most often on Windows Server 2016 and 2019, especially when there's a SQL Server or an older COM+ component that relies on XA transactions. The error text says it plainly: the LU recovery process is down. LU stands for Logical Unit, which is a legacy term from the SNA days, but it still haunts modern setups.

Root Cause

The culprit here is almost always MSDTC failing to initialize its internal recovery thread. That thread is what replays incomplete transactions after a crash or reboot. When it's not running, any call to start a distributed transaction gets this error. The trigger can be a corrupted MSDTC log file, a broken registry entry under HKLM\Software\Microsoft\MSDTC, or a permissions issue on the MSDTC system files. On clustered servers, it can also happen when the MSDTC resource fails to come online correctly.

Don't bother checking the event log first — it's usually vague. The fix is straightforward, but you need to follow the order here. Skipping steps or rebooting too early just drags the problem out.

Fix: Numbered Steps

  1. Restart the MSDTC service. Open an elevated command prompt and run:
    net stop msdtc
    net start msdtc
    This reinitializes the service and often clears the error if it's a one-off glitch. Check if the error still occurs before moving on.
  2. Verify the service account. If the service won't start or keeps crashing, open Services (services.msc), find "Distributed Transaction Coordinator", and check its Log On settings. It should be running under NT AUTHORITY\NetworkService. If someone changed it to a domain account, reset it back. That's a common cause I've tripped over more than once.
  3. Reset MSDTC logs. The log files can get corrupted, especially after an unclean shutdown. Open an elevated command prompt and run:
    msdtc -uninstall
    msdtc -install
    This removes and reinstalls the service configuration. Note: This resets all MSDTC settings, so you'll need to reconfigure any custom security settings afterward. It doesn't touch transaction data, but it's still a good idea to note your current settings first.
  4. Check the registry for stale entries. Open regedit and navigate to:
    HKLM\Software\Microsoft\MSDTC\Troubleshooting
    If there's a value called LURecoveryProcessDown set to 1, delete it or set it to 0. This value gets set by the system when the recovery process fails, and it can keep blocking new transactions even after the service restarts.
  5. If this is a cluster, check the MSDTC resource. In Failover Cluster Manager, look at the MSDTC resource. Right-click it and choose "Bring Online". If it fails, check the resource dependencies — the Network Name and Disk resources must be online first. I've seen cluster admins scratch their heads over this one, but it's usually a dependency issue.

What to Check If It Still Fails

If you're still staring at the same error, here's where to look next.

  • Check the Application log. This time, look for MSDTC-related warnings or errors around the time of the failure. You might see event ID 4102 or 4189, which give more detail on what's not initializing.
  • Make sure the DTC service is not isolated. If your app runs in a container or a separate session, MSDTC might not be accessible. That's rare but worth confirming.
  • Verify firewall rules. MSDTC uses dynamic ports (default 49152-65535). If the firewall is blocking those, the recovery process can't communicate. Enabling the predefined "Distributed Transaction Coordinator" rule in Windows Firewall often helps.
  • Look for third-party XA support. If you're using a resource manager like BizTalk or IBM MQ, its own recovery process might be down. MSDTC depends on those to coordinate. Restart that service too, and it might clear the error without touching anything else.

Most of the time, step 1 and step 3 fix it. The registry step is the sneaky one that gets you when it looks like the service is running but the error persists. I've had to uninstall and reinstall MSDTC on a production box once — it's not fun, but it works. You'll be fine if you follow this sequence and give each step a chance to take effect before moving on.

Related Errors in Windows Errors
0X801C0001 Fix STATUS_FLT_BUFFER_TOO_SMALL (0x801C0001) – Buffer Too Small 0XC01E034F STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE (0xC01E034F) Fix 0X00090313 SEC_I_COMPLETE_NEEDED (0x00090313) – Fix in 3 Steps 0XC00D271D NS_E_DRM_UNABLE_TO_INITIALIZE (0XC00D271D) Fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.