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

Troubleshooting Guide: SQL Server Error 9684 — “The Service With ID %d Has Been Dropped”

Why This Error Happens

Error 9684 typically occurs when SQL Server’s Service Broker subsystem removes a service definition because its associated queue or contract has been dropped or corrupted, often during a database restore, replication reconfiguration, or manual DDL cleanup. This can also happen when internal metadata in sys.services or sys.service_queues becomes inconsistent due to improper transaction rollback or abrupt server shutdown. In some cases, insufficient permissions on the msdb or application database prevent Service Broker from properly re-registering the service during startup.

Step-by-Step Resolution Guide

Step 1: Verify Service Broker Status and Metadata

  • Open SQL Server Management Studio (SSMS) and connect to the affected instance.
  • Run the following query to check if Service Broker is enabled on the database:
  SELECT name, is_broker_enabled FROM sys.databases WHERE name = 'YourDatabaseName';
  • If is_broker_enabled returns 0, enable it:
  ALTER DATABASE YourDatabaseName SET ENABLE_BROKER;

Step 2: Inspect and Recreate the Dropped Service

  • Query the system views to confirm the service and queue no longer exist:
  SELECT * FROM sys.services;
  SELECT * FROM sys.service_queues;
  • If the service was unintentionally dropped, recreate it along with its queue and contract:
  CREATE QUEUE YourQueueName;
  CREATE SERVICE YourServiceName ON QUEUE YourQueueName ([YourContractName]);
  • Ensure the contract and message types referenced still exist in the database schema.

Step 3: Check Permissions and Ownership

  • Confirm that the service account running SQL Server has CONTROL permission on the affected database.
  • In Windows Server 2025 / Windows 11, open Services.msc, locate the SQL Server service, and verify it is running under a valid domain or managed service account.
  • Grant explicit permissions if needed:
  GRANT CONTROL ON SERVICE::YourServiceName TO [YourLogin];

Step 4: Restart SQL Server and Monitor Logs

  • Restart the SQL Server service via SQL Server Configuration Manager to force Service Broker to reinitialize.
  • Open the SQL Server Error Log (Management > SQL Server Logs in SSMS) and search for recurring Event ID 9684 entries to confirm resolution.

Alternative or Verification Steps

  • Run SELECT * FROM sys.transmission_queue; to confirm there are no orphaned messages referencing the dropped service — this table should return no rows tied to the missing service ID.
  • If the issue persists, restore the affected database from a known-good backup taken before the service was dropped, then re-apply any transactional changes to avoid repeated metadata corruption.