Troubleshooting Guide: Service Broker Multicast Manager Error (Error 9656)
Why This Error Happens
Error 9656 occurs when the SQL Server Service Broker’s multicast manager is unable to properly distribute messages to multiple conversation endpoints, typically due to corrupted Service Broker internal queues or conversation groups. This can also stem from insufficient permissions on the msdb or user database’s Service Broker objects, or from a mismatch in the Service Broker GUID after a database restore/migration. Additionally, network connectivity issues between SQL Server endpoints involved in multicast conversations can trigger this error.
Step-by-Step Resolution Guide
Step 1: Verify Service Broker Status and GUID Consistency
- Run
SELECT name, service_broker_guid, is_broker_enabled FROM sys.databases WHERE name = 'YourDatabaseName';to confirm Service Broker is enabled. - If the database was restored or copied, check for GUID conflicts using
ALTER DATABASE YourDatabaseName SET NEW_BROKER WITH ROLLBACK IMMEDIATE;(use with caution as this resets conversations). - Ensure no duplicate broker GUIDs exist across databases on the same instance.
Step 2: Inspect and Clear Corrupted Conversation Endpoints
- Query
sys.conversation_endpointsandsys.transmission_queuefor stalled or orphaned conversations. - Use the command:
SELECT * FROM sys.transmission_queue WHERE transmission_status != '';to identify failed message transmissions. - End problematic conversations manually using
END CONVERSATION 'conversation_handle' WITH CLEANUP;.
Step 3: Validate Permissions on Service Broker Objects
- Confirm the service account running SQL Server 2025 has
CONTROLpermission on the affected database. - Grant necessary permissions using:
GRANT SEND ON SERVICE::[YourServiceName] TO [YourLogin]; - Verify the SQL Server service account has appropriate access under Windows Server 2025 Local Security Policy at
Control Panel > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment.
Step 4: Restart Service Broker and SQL Server Service
- Disable and re-enable the broker:
ALTER DATABASE YourDatabaseName SET DISABLE_BROKER; ALTER DATABASE YourDatabaseName SET ENABLE_BROKER; - Restart the SQL Server service via Services.msc or PowerShell:
Restart-Service -Name 'MSSQLSERVER' -Force - Check SQL Server Error Logs at
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOGfor recurring 9656 entries post-restart.
Step 5: Check Firewall and Network Port Configuration
- Verify the Service Broker endpoint port (commonly TCP 4022) is open on Windows Defender Firewall with Advanced Security.
- Run
netstat -ano | findstr 4022in PowerShell to confirm the port is listening and not blocked. - Adjust firewall rules via
New-NetFirewallRule -DisplayName "SQL Broker" -Direction Inbound -Protocol TCP -LocalPort 4022 -Action Allow.
Alternative or Verification Steps
- Verify the fix by monitoring
sys.transmission_queuefor an empty result set and checking thatsys.dm_broker_connectionsshows active, healthy connections without repeated error states. - If the error persists, consider running
DBCC CHECKDBon the affected database to rule out underlying corruption, and review the SQL Server Profiler/Extended Events trace for the exact conversation handle triggering Error 9656.