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
LogicalNamecolumn 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 MOVEstatements 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 theWITHclause. - If using a templated or dynamically generated script (e.g., from PowerShell or SSIS), check the loop logic that builds the
MOVElist 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 FILELISTONLYoutput to verify there are no overlappingFileGroupNameentries being mapped twice. - Remove or consolidate any extra
MOVEentries pointing to the sameLogicalName, keeping only the correct destination path.
Step 4: Re-run the Restore Operation
- Execute the corrected
RESTORE DATABASEscript in SQL Server Management Studio (SSMS) or viasqlcmd. - 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_filesfor 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
MOVEclause manually using theFILELISTONLYoutput to rule out tool-side duplication bugs.