- Error number
- 3169
- Severity
- 16 (user-correctable error)
- State
- Not documented by Microsoft (not reproduced here)
- Product
- Microsoft SQL Server Database Engine
- Versions
- All supported SQL Server versions (2016 to 2025), Azure SQL Managed Instance
- Category
- Backup & Restore
- Last reviewed
- 23 October 2026
On this page
What it means
Error 3169 means the backup was taken on a newer SQL Server version than the one you are restoring to, and backups can never be restored to an older version.
Each SQL Server release has an internal database format (the database version, for example 998 on SQL Server 2025 RTM). A restore can upgrade a database from an older format to the server's own, but nothing can convert a newer format back to an older one. When the backup header shows a database version higher than this server supports, RESTORE stops with 3169 and then Msg 3013 ... RESTORE DATABASE is terminating abnormally. In the message, NNN is the version stored in the backup and MMM is what this server supports; earlier versions print product build numbers such as 15.00.2000 (SQL Server 2019) instead.
The compatibility level of the source database does not matter: a SQL Server 2022 database at compatibility level 130 still has the SQL Server 2022 file format and cannot be restored on SQL Server 2016. Azure SQL Managed Instance follows the same rule through its update policy: Microsoft documents that only instances on the SQL Server 2022 or SQL Server 2025 update policy produce backups that SQL Server 2022 or SQL Server 2025 can restore, and that backups from the Always-up-to-date policy restore only to other Always-up-to-date instances.
Common causes
- A backup from a newer SQL Server release (for example 2022) is being restored on an older one (for example 2019 or 2016), often a developer laptop or a test server that was never upgraded.
- A vendor or another team sent a backup taken on their newer server.
- A copy-only backup from Azure SQL Managed Instance on the Always-up-to-date update policy, or on a newer update policy than your SQL Server version, is being restored to SQL Server.
- The restore was pointed at the wrong instance on a machine that runs several SQL Server versions side by side.
Diagnose it
Read-only These queries only read metadata and dynamic management views. They do not change data, permissions or configuration, so they are safe to run first.
Which version is the target server?
SELECT @@SERVERNAME AS server_name,
SERVERPROPERTY('ProductVersion') AS product_version,
SERVERPROPERTY('ProductMajorVersion') AS major_version,
DATABASEPROPERTYEX(N'master', 'Version') AS internal_db_version; The product version (16 = SQL Server 2022, 17 = SQL Server 2025) and the internal database version this server writes. Make sure you are connected to the instance you think you are.
Which version wrote the backup?
On the server that took the backup, its history shows the version (run there). For a file from elsewhere, RESTORE HEADERONLY FROM DISK = ... reads the header and lists SoftwareVersionMajor and DatabaseVersion without restoring anything.
SELECT TOP (10) database_name, backup_finish_date,
software_major_version, software_minor_version, software_build_version,
database_version, compatibility_level
FROM msdb.dbo.backupset
ORDER BY backup_finish_date DESC; A software_major_version or database_version higher than the target server's confirms 3169. compatibility_level is shown only to make the point that it does not decide restorability.
How to fix it
Each fix is labelled with what it changes. Try read-only checks and the least invasive fix first, and test changes outside production.
Restore on the same or a newer SQL Server version
Client or network sideThe only way to restore this backup is on an instance whose version is at least the source version. Upgrade the target instance, or use another server (a Developer edition install is fine for testing) that is on the same or a later release.
Move the data instead of the backup
Client or network sideIf the data must go to an older version, export it rather than back it up: script the schema (avoiding features the older version lacks) and copy the data with bcp, SSIS or the Import and Export Wizard, or export a .bacpac with SqlPackage and import it, checking the result. This is a migration, so test it.
From Azure SQL Managed Instance: match the update policy
Client or network sideCheck the instance with SELECT SERVERPROPERTY('ProductUpdateType'); (CU for the SQL Server 2022 or 2025 policy, Continuous for Always-up-to-date). Restore to the SQL Server version that matches the policy, or use export and import for an Always-up-to-date instance.
Examples
Restoring a newer backup on an older server
Shown as documented by Microsoft; not reproduced here, because the lab runs SQL Server 2025 and has no newer engine to produce such a backup. NNN and MMM stand for the two internal database versions.
-- On an older SQL Server, restoring a backup taken on a newer one
RESTORE DATABASE AppDb
FROM DISK = N'D:\Backups\AppDb_from_newer_server.bak';
The database was backed up on a server running database version NNN. That version is incompatible with this server, which supports version MMM. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server. Msg 3013, Level 16, State 1, Line 2 RESTORE DATABASE is terminating abnormally.
How to prevent it
Keep development, test and disaster recovery servers on the same or a later SQL Server version than production, and upgrade them first. Before anyone sends you a backup, agree the version it will be restored on.
For Azure SQL Managed Instance, choose the update policy with your restore needs in mind: Microsoft notes that moving to a newer policy upgrades the database format permanently.
Common questions
Can I restore a SQL Server 2022 backup on SQL Server 2019 by lowering the compatibility level?
No. Compatibility level changes query behaviour, not the file format. The backup still has the 2022 format and fails with 3169 on 2019.
Can I restore an older backup on a newer server?
Yes, within the supported upgrade paths for the target version. The database is upgraded during the restore and cannot be taken back to the old version afterwards.
Is there a tool that converts a backup to an older version?
Not for the backup itself. Move the schema and data with scripts, bcp, SSIS or a .bacpac instead.
Learn more on CodeWithSQL
Official documentation
- MSSQLSERVER_3169 (Microsoft Learn)
- Update policy: Azure SQL Managed Instance
- RESTORE statements: HEADERONLY (Transact-SQL)
Last technically reviewed 23 October 2026; examples and diagnostics run on SQL Server 2025 (17.0.1145.4). Message text checked against the engine's sys.messages catalogue.