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

Troubleshooting Guide: SQL Server Error 3924

Why This Error Happens

Error 3924 occurs when a session attempts to bind to a new transaction while it is still enlisted in an active user transaction, causing a transaction context conflict. This typically happens due to improperly managed BEGIN DISTRIBUTED TRANSACTION calls, mismatched sp_bindsession usage, or application connection pooling that reuses a connection before the prior transaction was fully committed or rolled back. Corrupted connection state within MSDTC (Microsoft Distributed Transaction Coordinator) on Windows Server 2025 can also trigger this defection error.

Step-by-Step Resolution Guide

Step 1: Audit Transaction Handling in Application Code

  • Check for explicit BEGIN TRAN statements that are not matched with a corresponding COMMIT TRAN or ROLLBACK TRAN.
  • Search application logs for nested transactions that may be binding the same session ID (SPID) to two different transaction contexts.
  • Use DBCC OPENTRAN in SQL Server Management Studio (SSMS) to identify the oldest active transaction currently blocking the session.

Step 2: Restart and Reconfigure MSDTC Service

  • Open Component Services on Windows Server 2025 by running dcomcnfg in the Run dialog.
  • Navigate to Component Services > Computers > My Computer > Distributed Transaction Coordinator > Local DTC.
  • Right-click Local DTC, select Stop, then Start to clear any hung transaction bindings.
  • Verify that Network DTC Access is enabled under the Security tab if the issue involves linked servers or distributed queries.

Step 3: Reset Connection Pooling Settings

  • In your connection string (ODBC, ADO.NET, or JDBC), verify that Enlist=false is set if distributed transactions are not explicitly required.
  • Navigate to C:\Windows\System32\drivers\etc to confirm no DNS conflicts are causing session re-binding across different physical SQL nodes.
  • For .NET applications, ensure TransactionScope objects are disposed of correctly using a using block to prevent lingering enlistments.

Step 4: Update SQL Server 2025 Cumulative Updates

  • Open SQL Server Configuration Manager and verify the current build number.
  • Navigate to the Microsoft Download Center and apply the latest Cumulative Update (CU) for SQL Server 2025, as early builds have known session-binding bugs in the Tabular Data Stream (TDS) protocol.
  • Restart the SQL Server (MSSQLSERVER) service via services.msc after the update installs.

Alternative or Verification Steps

  • To verify the fix, run a test transaction via SSMS using sp_who2 to confirm the SPID closes cleanly without lingering in a “sleeping” state with an open transaction.
  • If the error persists, use SQL Server Profiler to trace Existing Connection events and identify exactly which application thread is attempting to hijack the session before the first transaction resolves.