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

Troubleshooting Guide: Error 3933 — Cannot Promote Transaction Due to Active Save Point

Why This Error Happens

This error occurs because SQL Server’s MS DTC (Distributed Transaction Coordinator) cannot promote a local transaction to a distributed one while a SAVE TRANSACTION save point is still active within that transaction scope. Save points are inherently incompatible with distributed transaction promotion because the transaction manager cannot guarantee rollback consistency across multiple resource managers when a partial rollback point exists. This typically surfaces in applications using System.Transactions.TransactionScope or ORM frameworks (like Entity Framework) that implicitly open save points, then later attempt a cross-database or linked-server call that forces promotion.

Step-by-Step Resolution Guide

Step 1: Identify the Code Path Creating the Save Point

  • Review application code or stored procedures for explicit SAVE TRANSACTION savepoint_name statements.
  • Check ORM configurations (e.g., Entity Framework Core, NHibernate) — some versions auto-create save points when nested TransactionScope blocks are used.
  • Use SQL Server Profiler or Extended Events (sqlserver.save_transaction_completed) to trace where the save point is issued relative to the distributed call.

Step 2: Restructure the Transaction Scope

  • Remove or avoid nested TransactionScope blocks that trigger implicit save points before a linked-server or cross-database query executes.
  • In .NET code, ensure TransactionScopeOption.RequiresNew is used only when necessary, and move any cross-server/distributed calls to occur before any save point is created, not after.
  • If using raw T-SQL, reorder statements so SAVE TRANSACTION is issued only after all distributed operations (e.g., calls to linked servers via OPENQUERY or four-part names) have completed.

Step 3: Force Early Promotion Where Required

  • If the distributed call must happen regardless of save points, explicitly force promotion early using BEGIN DISTRIBUTED TRANSACTION at the start of the batch, before any SAVE TRANSACTION is issued.
  • Validate that MS DTC is properly configured and running on both Windows Server 2025 and the client via Component Services (dcomcnfg.exe → Distributed Transaction Coordinator → Local DTC → Security tab → enable “Network DTC Access” and “Allow Inbound/Outbound”).
  • Restart the MSDTC service after configuration changes:
  • net stop msdtc && net start msdtc

Step 4: Patch and Update SQL Server

  • Confirm SQL Server 2025 is updated to the latest Cumulative Update, as earlier builds had known issues with save point handling in promoted transactions.
  • Check via: SELECT @@VERSION; and compare against Microsoft’s latest CU release notes.

Alternative or Verification Steps

  • Verify the fix by re-running the transaction workflow while capturing an Extended Events session filtered on error_reported for Error 3933 — confirm no occurrences remain.
  • As an alternative, if save points are functionally required, isolate the distributed operation into a separate, independent transaction scope (using TransactionScopeOption.Suppress or a new connection) so it is not affected by the save point in the parent transaction.