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

Troubleshooting Guide: Error 3070 — FORMAT and FILE_SNAPSHOT Conflict in SQL Server 2025

Why This Error Happens

This error occurs because the FORMAT option and the FILE_SNAPSHOT option in a RESTORE or BACKUP statement are mutually exclusive in SQL Server’s command parser. FORMAT is used to overwrite media headers and reinitialize a backup device, while FILE_SNAPSHOT relies on existing VSS-based or Volume Shadow Copy infrastructure (often tied to Azure Blob Storage or local snapshot backups) that requires the media to already be intact and properly structured. Since FORMAT destroys existing media structure and FILE_SNAPSHOT depends on that structure being preserved, SQL Server blocks the combination to prevent corrupting the backup chain or snapshot metadata.

Step-by-Step Resolution Guide

Step 1: Identify the Conflicting T-SQL Statement

  • Open SQL Server Management Studio (SSMS) or Azure Data Studio and locate the exact BACKUP DATABASE or RESTORE DATABASE script throwing Error 3070.
  • Check the WITH clause for both FORMAT and FILE_SNAPSHOT keywords appearing together, for example:
  RESTORE DATABASE [YourDB] FROM DISK = 'D:\Backups\YourDB.bak' WITH FORMAT, FILE_SNAPSHOT;
  • Confirm this is the statement causing the failure by checking the SQL Server Error Log at C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG.

Step 2: Remove the FORMAT Option When Using Snapshot Backups

  • If you intend to use FILE_SNAPSHOT (common with snapshot backups stored on Azure Blob Storage or local VSS-enabled volumes), remove FORMAT entirely from the script.
  • Revised example:
  RESTORE DATABASE [YourDB] FROM DISK = 'D:\Backups\YourDB.bak' WITH FILE_SNAPSHOT;
  • Ensure the underlying storage subsystem supports snapshot backups (NTFS with VSS writer enabled, or Azure premium file shares).

Step 3: Use FORMAT Independently for Media Reinitialization

  • If your primary goal is to reinitialize the backup media (overwrite existing backup sets), drop FILE_SNAPSHOT and run FORMAT alone.
  • Revised example:
  BACKUP DATABASE [YourDB] TO DISK = 'D:\Backups\YourDB.bak' WITH FORMAT, INIT;
  • Verify the destination path has sufficient disk space via File Explorer or Get-PSDrive in PowerShell.

Step 4: Validate VSS Writer and Snapshot Prerequisites (If Using FILE_SNAPSHOT)

  • On Windows Server 2025 / Windows 11, run vssadmin list writers in an elevated Command Prompt to confirm the SQL Server VSS Writer service is running.
  • Restart the service if needed: net stop "SQL Server VSS Writer" followed by net start "SQL Server VSS Writer".
  • Confirm the backup target volume supports shadow copies via vssadmin list volumes.

Step 5: Re-run the Corrected Script

  • Execute the updated BACKUP or RESTORE command without the conflicting option pair.
  • Monitor the SQL Server Error Log in real time using sp_readerrorlog to confirm Error 3070 no longer appears.

Alternative or Verification Steps

  • Run RESTORE VERIFYONLY FROM DISK = 'D:\Backups\YourDB.bak' to confirm the backup file is valid and readable after making corrections.
  • If snapshot backups are not strictly required, consider omitting FILE_SNAPSHOT altogether and using standard WITH FORMAT, INIT, STATS = 10 for a traditional backup/restore workflow instead.