Troubleshooting Guide: Error 9237 – “Database is not a valid broker database”
Why This Error Happens
This error occurs when the service_broker_guid stored in the database’s system catalog does not match the GUID expected by the SQL Server instance, typically following a database restore, attach, or copy operation performed without the ENABLE_BROKER, NEW_BROKER, or WITH FORCE_REMOVE options. It can also happen if the database’s Service Broker metadata was corrupted due to an improper file copy (such as copying .mdf/.ldf files while the SQL Server service was still running) or a failed upgrade from a previous version to SQL Server 2025. In some cases, this is triggered when a database is moved between servers and the broker configuration retains a GUID that conflicts with sys.databases.
Step-by-Step Resolution Guide
Step 1: Verify the Current Broker Status and GUID
- Open SQL Server Management Studio (SSMS) or use
sqlcmdon Windows Server 2025. - Run the following query to check the current broker GUID and enabled status:
SELECT name, service_broker_guid, is_broker_enabled
FROM sys.databases
WHERE name = 'YourDatabaseName';
- Confirm whether
is_broker_enabledis0(disabled) or if the GUID appears asNULLor mismatched.
Step 2: Set the Database to Single-User Mode
- Service Broker configuration changes require exclusive access to the database.
- Run the following command in a query window:
ALTER DATABASE [YourDatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
- Ensure no active connections (including SSMS Object Explorer) are pointing to this database before proceeding.
Step 3: Reset the Service Broker GUID
- Execute the
NEW_BROKERoption if you want to disassociate the database from its old broker identity and generate a new GUID (recommended for copied/restored databases):
ALTER DATABASE [YourDatabaseName] SET NEW_BROKER;
- If you need to retain the original GUID (e.g., for existing broker conversations), use the
ENABLE_BROKERoption instead:
ALTER DATABASE [YourDatabaseName] SET ENABLE_BROKER;
- If both commands hang or fail due to metadata corruption, use the force option:
ALTER DATABASE [YourDatabaseName] SET ENABLE_BROKER WITH ERROR_BROKER_CONVERSATIONS;
Step 4: Revert to Multi-User Mode
- Once the broker setting has been applied successfully, restore standard access to the database.
- Run:
ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
- Restart the SQL Server (MSSQLSERVER) service via
services.mscon Windows Server 2025 to clear any cached broker session states.
Alternative or Verification Steps
- Re-run the verification query from Step 1 to confirm
is_broker_enablednow returns1andservice_broker_guidis populated with a valid, non-null value. - If the error persists after
NEW_BROKER, check the SQL Server Error Log (C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG) for underlying corruption flags, and consider runningDBCC CHECKDBto rule out deeper system table corruption.