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

Troubleshooting Guide: SQL Server Error 4353 — Conflicting File Relocations Specified

Why This Error Happens

This error occurs when a RESTORE DATABASE command contains multiple WITH MOVE clauses that reference the exact same logical file name. SQL Server 2025 cannot determine which physical destination path to use when a single logical file is targeted more than once in the same restore statement. This typically happens due to copy-paste errors in scripting, automated restore jobs that dynamically append MOVE clauses without checking for duplicates, or merging restore scripts from multiple sources (e.g., combining a template script with manually added file paths).

Step-by-Step Resolution Guide

Step 1: Identify the Logical File Names in the Backup

  • Run RESTORE FILELISTONLY FROM DISK = 'C:\Backups\YourBackupFile.bak' to list all logical and physical file names contained in the backup set.
  • Note the exact LogicalName column values for both the data file (ROWS) and log file (LOG) — these must be unique in your restore script.
  • Cross-reference this list against your WITH MOVE statements to spot duplicates.

Step 2: Review and Clean Up the RESTORE Script

  • Open the T-SQL script or SSMS restore job that triggered the error.
  • Search for repeated instances of MOVE 'LogicalName' TO — ensure each logical file name appears only once in the WITH clause.
  • If using a templated or dynamically generated script (e.g., from PowerShell or SSIS), check the loop logic that builds the MOVE list to ensure it does not iterate over the same file twice.
  • Example of a corrected clause:
  RESTORE DATABASE [YourDB]
  FROM DISK = 'C:\Backups\YourBackupFile.bak'
  WITH MOVE 'YourDB_Data' TO 'C:\SQLData\YourDB.mdf',
       MOVE 'YourDB_Log' TO 'C:\SQLLogs\YourDB_log.ldf',
       REPLACE;

Step 3: Check for Hidden Duplicate Files (FILESTREAM/FileTable)

  • If the database uses FILESTREAM or FileTable, confirm that the filegroup’s logical name isn’t accidentally duplicated alongside a standard data file reference.
  • Use RESTORE FILELISTONLY output to verify there are no overlapping FileGroupName entries being mapped twice.
  • Remove or consolidate any extra MOVE entries pointing to the same LogicalName, keeping only the correct destination path.

Step 4: Re-run the Restore Operation

  • Execute the corrected RESTORE DATABASE script in SQL Server Management Studio (SSMS) or via sqlcmd.
  • Confirm the command completes with the standard success message: RESTORE DATABASE successfully processed X pages....

Alternative or Verification Steps

  • Verify success by querying sys.master_files for the restored database to confirm each logical file maps to a single, correct physical path on disk.
  • If the error persists, drop any cached or staged restore scripts generated by third-party backup tools (e.g., Ola Hallengren scripts, Veeam, or Redgate) and regenerate the MOVE clause manually using the FILELISTONLY output to rule out tool-side duplication bugs.