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

Troubleshooting Guide: Error 3137 – Database Cannot Be Reverted

Why This Error Happens

Error 3137 occurs when SQL Server cannot correctly resolve the relationship between the primary database and its associated snapshot during a RESTORE DATABASE ... FROM DATABASE_SNAPSHOT operation. This typically happens because the snapshot file name specified in the command does not match the actual logical name registered in sys.databases, or because the snapshot file has been moved, renamed, or partially corrupted at the file-system level. It can also occur if multiple snapshots exist for the same primary database and the wrong one is targeted in the T-SQL statement.

Step-by-Step Resolution Guide

Step 1: Verify the Exact Snapshot and Primary Database Names

  • Run SELECT name, database_id, source_database_id FROM sys.databases WHERE source_database_id IS NOT NULL; to list all valid snapshots.
  • Confirm the primary database name matches exactly (case-sensitivity and whitespace matter in scripted jobs).
  • Cross-check the snapshot name against the .ss file path using SELECT physical_name FROM sys.master_files WHERE database_id = DB_ID('YourSnapshotName');.

Step 2: Rebuild the Correct REVERT Syntax

  • Use the precise syntax: RESTORE DATABASE [PrimaryDB] FROM DATABASE_SNAPSHOT = 'SnapshotName';.
  • Ensure you are not accidentally referencing the physical .ss file path instead of the logical snapshot name.
  • Remove any trailing semicolons or hidden characters if the command was copied from a non-SSMS source (e.g., Notepad or a web page).

Step 3: Check for Multiple or Orphaned Snapshots

  • If more than one snapshot exists for the same primary database, SQL Server will reject the revert; drop redundant snapshots using DROP DATABASE [OldSnapshotName];.
  • Verify no snapshot file is orphaned on disk without a corresponding metadata entry in sys.databases.
  • Restart the SQL Server service via services.msc or Restart-Service MSSQLSERVER on Windows Server 2025 if metadata appears cached incorrectly.

Step 4: Validate File System Permissions and Paths

  • Confirm the SQL Server service account has Read/Write access to the folder containing the .ss snapshot file (commonly under C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\).
  • Check Windows Event Viewer under Windows Logs > Application for I/O or access-denied errors tied to the snapshot file.
  • Re-apply NTFS permissions using icacls if the service account lacks explicit access.

Alternative or Verification Steps

  • After re-running the RESTORE DATABASE... FROM DATABASE_SNAPSHOT command, verify success by checking SELECT state_desc FROM sys.databases WHERE name = 'PrimaryDB'; — it should return ONLINE.
  • If the revert still fails, as an alternative, take a fresh manual backup of the primary database, drop the problematic snapshot entirely, and create a new snapshot with a clean, unambiguous name before attempting the revert again.