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

Troubleshooting Guide: SQL Server Error 3407 – Transactions Rolled Back During Recovery

Why This Error Happens

Error 3407 is generated during the database recovery process when SQL Server rolls back incomplete transactions that were active at the time of a shutdown, crash, or failover. This typically occurs after an unexpected service interruption, a failed cluster failover, or when a database was not shut down cleanly (e.g., power loss or forced termination of the sqlservr.exe process). While the message itself is informational, its frequent appearance may point to underlying instability such as storage I/O latency, insufficient transaction log space, or hardware-level disk corruption on Windows Server 2025 volumes.

Step-by-Step Resolution Guide

Step 1: Confirm the Informational Nature of the Message

  • Check the SQL Server Error Log via SSMS: Management > SQL Server Logs > Current.
  • Verify the message is paired with “Recovery is complete” shortly after, confirming normal rollback behavior.
  • Run: EXEC xp_readerrorlog 0, 1, N'3407'; to isolate occurrences.

Step 2: Investigate the Root Cause of the Unexpected Shutdown

  • Open Event Viewer (eventvwr.msc) on Windows Server 2025 and inspect the System and Application logs around the timestamp of the error.
  • Look for Event ID 6008 (unexpected shutdown) or Event ID 41 (kernel power event).
  • Check for Windows Updates or automatic reboots scheduled via Settings > Windows Update > Advanced Options.

Step 3: Validate Transaction Log Health and Storage Integrity

  • Run DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS; to rule out corruption.
  • Inspect the drive hosting your .ldf files for latency using Performance Monitor (perfmon) and the Avg. Disk sec/Write counter.
  • Ensure the log file has adequate auto-growth settings: ALTER DATABASE YourDatabaseName MODIFY FILE (NAME = YourDB_log, FILEGROWTH = 512MB);

Step 4: Review SQL Server and Windows Cluster Failover Settings

  • If running on a Failover Cluster Instance (FCI) or Always On Availability Group, check the Failover Cluster Manager for recent automatic failover events.
  • Validate the HealthCheckTimeout and LeaseTimeout properties in the AG resource properties to prevent false-positive failovers causing rollback.

Alternative or Verification Steps

  • To verify resolution, monitor the SQL Server Error Log over the next maintenance cycle to ensure Error 3407 only appears in correlation with planned restarts (e.g., patching), not unexpected crashes.
  • If rollbacks continue without a clear trigger, run a memory diagnostic via mdsched.exe and check physical disk SMART status, as this message can be a downstream symptom of failing hardware rather than a SQL Server configuration issue.