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

Troubleshooting Guide: SQL Server Error 5121 — “The path specified by is not in a valid directory”

Why This Error Happens

This error occurs when SQL Server 2025 attempts to create, attach, or restore a database file to a path that either does not exist, is not accessible to the SQL Server service account, or resides on a drive/volume not recognized by the server. It commonly surfaces after restoring a database with a MOVE clause pointing to an invalid location, migrating a database between servers with different folder structures, or when the target directory was deleted/renamed after being referenced in a script. Underlying causes also include missing NTFS permissions for the SQL Server service account or the path exceeding Windows’ maximum character length.

Step-by-Step Resolution Guide

Step 1: Verify the Target Directory Exists

  • Open File Explorer or Command Prompt on the Windows Server 2025 / Windows 11 host running the SQL instance.
  • Navigate to the exact path specified in the error (e.g., D:\SQLData\MSSQL17.MSSQLSERVER\MSSQL\DATA\).
  • If the folder is missing, create it manually using mkdir "D:\SQLData\MSSQL17.MSSQLSERVER\MSSQL\DATA".
  • Confirm there are no typos, trailing spaces, or incorrect drive letters in the path string used in your T-SQL script.

Step 2: Check NTFS Permissions for the SQL Server Service Account

  • Right-click the target folder, select Properties > Security > Edit.
  • Ensure the SQL Server service account (e.g., NT Service\MSSQLSERVER or a custom domain account) has Full Control or at minimum Modify, Read, and Write permissions.
  • Apply permissions recursively if subfolders (like DATA or LOG) are involved.
  • Restart the SQL Server service via SQL Server Configuration Manager after updating permissions.

Step 3: Validate the Path in Your T-SQL Command

  • If using RESTORE DATABASE with MOVE, run RESTORE FILELISTONLY FROM DISK = 'BackupPath.bak' first to confirm the correct logical file names.
  • Rewrite the command with the exact physical path, for example:
  RESTORE DATABASE [YourDB]
  FROM DISK = 'D:\Backups\YourDB.bak'
  WITH MOVE 'YourDB_Data' TO 'D:\SQLData\MSSQL17.MSSQLSERVER\MSSQL\DATA\YourDB.mdf',
       MOVE 'YourDB_Log' TO 'D:\SQLData\MSSQL17.MSSQLSERVER\MSSQL\DATA\YourDB_log.ldf';
  • Ensure the path does not exceed 260 characters unless long path support is explicitly enabled in Windows Server 2025.

Step 4: Confirm the Drive or Volume Is Online and Recognized

  • Open Disk Management (diskmgmt.msc) and verify the target drive is online, not read-only, and properly formatted (NTFS/ReFS).
  • If using a mounted volume or network share (UNC path), confirm SQL Server 2025 supports the path type — local paths are strongly recommended for data/log files.
  • Reboot the volume or reattach it if it shows as “Offline” or “Unknown.”

Alternative or Verification Steps

  • After applying the fix, rerun the original CREATE DATABASE, RESTORE, or ALTER DATABASE command and confirm it completes without Error 5121.
  • As an alternative, use SQL Server Management Studio (SSMS)‘s GUI-based restore wizard, which auto-validates and displays available paths, reducing manual path-entry errors.