Troubleshooting Guide: SQL Server Error 3971 — “The Server Failed to Resume the Transaction”
Why This Error Happens
This error typically occurs when SQL Server 2025 attempts to resume a marked or distributed transaction (identified by the hexadecimal descriptor in the error message) but cannot locate its corresponding state in memory or in the transaction log. This usually happens due to a mismatched transaction descriptor caused by a failed session reconnect, an abrupt application disconnect during a bound session, or corruption in the transaction log that prevents SQL Server from mapping the transaction context correctly. In some cases, this is also triggered by MSDTC (Microsoft Distributed Transaction Coordinator) communication failures between Windows Server 2025 and the SQL Server instance.
Step-by-Step Resolution Guide
Step 1: Verify the Transaction Descriptor and Session State
- Query
sys.dm_tran_active_transactionsandsys.dm_tran_session_transactionsto check if the transaction ID referenced in the%I64xdescriptor still exists. - Check the SQL Server Error Log (
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG) for correlating entries around the same timestamp. - Identify whether the application is using
sp_getbindtoken/sp_bindsessionfor bound connections, as this is a common trigger.
Step 2: Restart and Reset MSDTC Service
- Open Services.msc on Windows Server 2025 and locate Distributed Transaction Coordinator.
- Restart the service:
net stop msdtc && net start msdtc. - Validate MSDTC security settings via
dcomcnfg.exe→ Component Services → My Computer → Distributed Transaction Coordinator → Local DTC → Properties → Security tab. Ensure “Network DTC Access” and “Allow Inbound/Outbound” are enabled if distributed transactions are used.
Step 3: Check for Transaction Log Corruption
- Run
DBCC CHECKDB (YourDatabaseName) WITH NO_INFOMSGS, ALL_ERRORS;to rule out log or page-level corruption. - If corruption is found, restore from the last known good backup rather than attempting repair with data loss as a first option.
Step 4: Update SQL Server 2025 Cumulative Updates
- Navigate to SQL Server Installation Center and check the current build version using
SELECT @@VERSION;. - Apply the latest Cumulative Update (CU) from Microsoft, as this specific error has known fixes related to session multiplexing (MARS) and bound transaction handling in early builds of SQL Server 2025.
Alternative or Verification Steps
- To verify the fix, re-run the application workload that previously failed and monitor
sys.dm_tran_active_transactionsfor orphaned or long-running transactions that fail to resume. - As an alternative, if the error persists only under MARS (Multiple Active Result Sets) connections, disable
MultipleActiveResultSets=Truein the application’s connection string to confirm if the issue is isolated to session multiplexing.