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

Troubleshooting Guide: SQL Server Error 5052

“%ls is not permitted while a database is in the %ls state.”

Why This Error Happens

This error occurs when SQL Server rejects an operation because the target database is currently in a state (such as RESTORING, OFFLINE, EMERGENCY, or SINGLE_USER) that does not permit the requested action. This typically happens when a previous restore, backup, or maintenance operation did not complete successfully, leaving the database in a transitional or restricted state. It can also occur if another session is actively holding the database in a non-standard state while a conflicting operation is attempted simultaneously.

Step-by-Step Resolution Guide

Step 1: Identify the Current Database State

  • Open SQL Server Management Studio (SSMS) or connect via sqlcmd on Windows Server 2025.
  • Run the following query to check the current state:
  SELECT name, state_desc FROM sys.databases WHERE name = 'YourDatabaseName';
  • Confirm whether the state is RESTORING, OFFLINE, EMERGENCY, RECOVERY_PENDING, or SUSPECT.

Step 2: Resolve Incomplete Restore or Recovery Operations

  • If the database is stuck in RESTORING, determine if a restore sequence was left incomplete (missing WITH RECOVERY command).
  • Complete the recovery process manually:
  RESTORE DATABASE YourDatabaseName WITH RECOVERY;
  • If the database is SUSPECT, attempt to bring it into EMERGENCY mode for inspection:
  ALTER DATABASE YourDatabaseName SET EMERGENCY;

Step 3: Check Active Sessions and Locks

  • Query sys.dm_exec_sessions and sys.dm_tran_locks to identify any blocking sessions holding the database in a restricted state.
  • Terminate conflicting sessions if safe to do so:
  KILL <session_id>;
  • Ensure no automated jobs (SQL Server Agent) are concurrently triggering backup/restore tasks on the same database.

Step 4: Set the Database to a Usable State

  • Once blocking issues are cleared, transition the database back to ONLINE:
  ALTER DATABASE YourDatabaseName SET ONLINE;
  • If corruption is suspected, run a consistency check:
  DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Step 5: Restart SQL Server Service (If Needed)

  • On Windows Server 2025/Windows 11, open Services.msc.
  • Locate SQL Server (MSSQLSERVER) or the named instance service.
  • Right-click and select Restart to clear any cached state locks preventing the transition.

Alternative or Verification Steps

  • Re-run the original operation (backup, restore, or query) that triggered Error 5052 and confirm it completes without the state-related rejection message.
  • If the issue persists, detach and re-attach the database using sp_detach_db and CREATE DATABASE ... FOR ATTACH to force SQL Server to re-evaluate the database state from a clean metadata read.