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

Troubleshooting Guide: SQL Server Error 3168

Why This Error Happens

Error 3168 occurs because SQL Server enforces strict version compatibility checks when restoring system databases (master, msdb, or model). The backup file was created on a SQL Server instance with a different internal version number than the target server, which typically happens when attempting to restore a backup from an older or newer build of SQL Server 2025 onto an instance that has not been patched to the matching Cumulative Update (CU) or build level. Since system database backups contain version-specific metadata and internal structures, SQL Server blocks the restore to prevent catalog corruption or instance instability.

Step-by-Step Resolution Guide

Step 1: Verify the Source and Target Build Versions

  • Run SELECT @@VERSION; on both the source server (where the backup originated) and the target server (where you are restoring).
  • Note the exact build number (e.g., 17.0.XXXX.X) for both instances.
  • Check the header of the backup file using RESTORE HEADERONLY FROM DISK = 'C:\Backups\master.bak'; to confirm the SoftwareVersionMajor, SoftwareVersionMinor, and SoftwareVersionBuild columns.

Step 2: Align the Target Server’s Patch Level

  • Navigate to the Microsoft Update Catalog or the SQL Server Release Notes page to identify the specific CU that matches the source server’s build number.
  • Download and install the matching Cumulative Update on the target Windows Server 2025 or Windows 11 machine.
  • Restart the SQL Server (MSSQLSERVER) service via services.msc or by running net stop MSSQLSERVER && net start MSSQLSERVER in an elevated Command Prompt.
  • Re-check @@VERSION to confirm the target server now matches or exceeds the source build.

Step 3: Restore Using the Correct Method for System Databases

  • If restoring master, ensure SQL Server is started in single-user mode using sqlservr.exe -m from the Binn directory (e.g., C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Binn).
  • Use SQLCMD to execute the restore: RESTORE DATABASE master FROM DISK = 'C:\Backups\master.bak' WITH REPLACE;
  • For msdb or model, ensure no active connections exist, then run RESTORE DATABASE msdb FROM DISK = 'C:\Backups\msdb.bak' WITH REPLACE; from a standard SSMS session.

Step 4: Rebuild System Databases if Versions Cannot Be Matched

  • If the source build is newer than any available CU for the target (common when migrating backward), do not attempt to force the restore.
  • Instead, use Setup.exe /ACTION=REBUILDDATABASE from the SQL Server 2025 installation media to reset system databases to a clean, compatible baseline.
  • Manually recreate logins, jobs, and configurations that existed in the original msdb/master rather than relying on the incompatible backup.

Alternative or Verification Steps

  • After patching, run RESTORE VERIFYONLY FROM DISK = 'C:\Backups\master.bak'; to confirm the backup integrity and compatibility before attempting the full restore again.
  • If version alignment is not feasible, use DBCC CHECKDB and manual scripting (via sp_help_revlogin or SSMS “Generate Scripts”) to migrate objects between instances instead of restoring the raw system database backup.