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

Troubleshooting Guide: Error 3811 – Event Notification Dropped as Broker Instance Is Not Specified

Why This Error Happens

This error occurs when an event notification attempts to deliver a message to a service queue, but the target service broker instance GUID is missing, mismatched, or unresolved in the routing information. This typically happens after a database restore, attach, or mirroring/Availability Group failover where the service_broker_guid changes but dependent event notification objects or routes were not updated accordingly. It can also occur if Service Broker is disabled on the database or if the message routing table contains stale or incomplete broker instance data.

Step-by-Step Resolution Guide

Step 1: Verify Service Broker Is Enabled on the Database

  • Open SQL Server Management Studio (SSMS) and connect to the SQL Server 2025 instance.
  • Run the following query to check broker status:
  SELECT name, is_broker_enabled, service_broker_guid 
  FROM sys.databases 
  WHERE name = 'YourDatabaseName';
  • If is_broker_enabled returns 0, enable it using:
  ALTER DATABASE YourDatabaseName SET ENABLE_BROKER;
  • Note: If the database is part of an Availability Group, run this step on the primary replica only.

Step 2: Check and Repair the Service Broker GUID Mismatch

  • A common cause is a GUID mismatch after restoring a database. Confirm the current GUID matches what routes/notifications expect:
  SELECT service_broker_guid FROM sys.databases WHERE name = 'YourDatabaseName';
  • If the database was restored from another server, reset the broker ID to force regeneration:
  ALTER DATABASE YourDatabaseName SET NEW_BROKER;

(Use NEW_BROKER only if old conversations do not need to be preserved — this clears all existing conversations.)

Step 3: Recreate the Event Notification and Associated Route

  • Drop and recreate the event notification object bound to the service queue:
  DROP EVENT NOTIFICATION YourNotificationName ON SERVER;

  CREATE EVENT NOTIFICATION YourNotificationName 
  ON SERVER 
  FOR DDL_DATABASE_LEVEL_EVENTS 
  TO SERVICE 'YourServiceName', 'current database';
  • Ensure the route definition in sys.routes includes the correct BROKER_INSTANCE value:
  CREATE ROUTE YourRouteName 
  WITH SERVICE_NAME = 'YourServiceName',
  BROKER_INSTANCE = 'correct-broker-guid-here',
  ADDRESS = 'LOCAL';

Step 4: Restart the SQL Server Service (Windows Server 2025 / Windows 11)

  • Open Services.msc (Win + R → services.msc).
  • Locate SQL Server (MSSQLSERVER) or your named instance.
  • Right-click and select Restart to reinitialize the Service Broker task and flush any stale internal routing cache.
  • Alternatively, use PowerShell as Administrator:
  Restart-Service -Name 'MSSQLSERVER' -Force

Step 5: Review SQL Server Error Log for Residual Broker Errors

  • Check the error log location (default: C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG).
  • Search for repeated instances of Error 3811 or related Broker errors (9675, 9676) to confirm the issue is resolved post-restart.

Alternative or Verification Steps

  • Verify the fix by triggering a test DDL event (e.g., CREATE TABLE TestTable (ID INT);) and confirming the event notification message successfully lands in the target service queue using SELECT * FROM YourServiceQueue;.
  • If the error persists, as an alternative, drop and fully recreate the Service Broker service, queue, and contract objects from scratch rather than repairing existing ones — this resolves cases of deep metadata corruption that NEW_BROKER alone cannot fix.