How to fix Error 6110 on Windows Server 2025 / Windows 11

Why This Error Happens

Error 6110 (“The distributed transaction with UOW %s does not exist”) is raised by SQL Server when the Microsoft Distributed Transaction Coordinator (MSDTC) cannot locate the Unit of Work (UOW) GUID that SQL Server is referencing. This typically happens because the MSDTC service was restarted or recycled while a transaction was still in flight, the MSDTC log became corrupted or was reset, a firewall or RPC port block interrupted coordinator-to-coordinator communication between linked servers, or the service account running MSDTC/SQL Server lacks the rights needed to enlist in or resolve the transaction. Because MSDTC tracks transaction state independently of SQL Server, any desynchronization between the two — service restarts, log corruption, or security mismatches — results in SQL Server referencing a UOW that MSDTC no longer recognizes.

Step-by-Step Resolution Guide

Step 1: Verify Service Account Permissions

  • Open Services (services.msc) and confirm the Distributed Transaction Coordinator service is running under its default account, NT AUTHORITY\NetworkService, unless your environment requires a dedicated domain account.
  • Open SQL Server Configuration Manager and confirm the SQL Server service account (e.g., NT Service\MSSQLSERVER or a domain account) has the Log on as a service right, verifiable under secpol.msc → Local Policies → User Rights Assignment.
  • Restart both services after any account change, using an elevated PowerShell session:
  Restart-Service -Name MSDTC -Force
  Restart-Service -Name MSSQLSERVER -Force

Step 2: Check Distributed Transaction Coordinator Configuration

  • Open the Component Services console with dcomcnfg (or comexp.msc), then navigate to Component Services → Computers → My Computer → Distributed Transaction Coordinator → Local DTC.
  • Right-click Local DTC → Properties → Security tab and confirm Network DTC Access, Allow Inbound, Allow Outbound, and the correct authentication level (No Authentication Required, Incoming Caller Authentication Required, or Mutual Authentication Required) match the configuration on every server participating in the distributed transaction.
  • Click OK to apply, which will prompt a restart of the MSDTC service automatically. If it does not, restart it manually:
  net stop msdtc
  net start msdtc

Step 3: Inspect for Port Conflicts

  • MSDTC relies on the RPC Endpoint Mapper (port 135 by default) plus a dynamic high port range for transaction traffic. Check active bindings with:
  netstat -ano | findstr ":135"
  • Identify the owning process of any conflicting port using:
  Get-NetTCPConnection -LocalPort 135 | Select-Object OwningProcess
  Get-Process -Id <PID>
  • Confirm the built-in firewall rule group is enabled on Windows Server 2025 / Windows 11:
  netsh advfirewall firewall show rule group="Distributed Transaction Coordinator"
  netsh advfirewall firewall set rule group="Distributed Transaction Coordinator" new enable=yes
  • If a conflicting process is bound to a required port, stop or reconfigure that process rather than changing MSDTC’s dynamic RPC range, unless your organization enforces a fixed port policy under `HKLM\SOFTWARE\Microsoft\Rpc\Intern