Troubleshooting Guide: SQL Server Error 9906 – Full-Text Catalog Monitor State
Why This Error Happens
Error 9906 is an informational message generated by the Full-Text Catalog Monitor background process, which periodically reports the current operational state (such as IDLE, PAUSED, RECOVERING, or BUILDING) of a full-text catalog within a database. This message does not indicate corruption or failure; it is simply SQL Server’s internal mechanism for logging catalog population and health status to the error log. It typically appears alongside catalog population events, index rebuilds, or during routine full-text indexing operations, and only becomes a concern if the reported state remains stuck in an unexpected condition (like PAUSED or RECOVERING) for an extended period.
Step-by-Step Resolution Guide
Step 1: Confirm the Message Is Informational
- Open SQL Server Management Studio (SSMS) and check the SQL Server Error Log under Management > SQL Server Logs.
- Verify that Error 9906 is logged with a severity level of 0 or 10, confirming it is informational and not a system-breaking error.
- Note the catalog name, database name, and reported state (%ls) from the message text for further investigation.
Step 2: Check the Actual Full-Text Catalog State
- Run the following T-SQL query to inspect the real-time status of the catalog:
SELECT name, is_paused, crawl_type, crawl_start_date, crawl_end_date
FROM sys.fulltext_indexes AS fi
JOIN sys.fulltext_catalogs AS fc ON fi.fulltext_catalog_id = fc.fulltext_catalog_id;
- If the state shows
PAUSEDorRECOVERINGunexpectedly, proceed to repair the catalog rather than ignoring the log entry.
Step 3: Rebuild or Reorganize the Full-Text Catalog (If State Is Abnormal)
- Use SSMS or T-SQL to rebuild the affected catalog:
ALTER FULLTEXT CATALOG [YourCatalogName] REBUILD;
- For minor inconsistencies, reorganize instead of a full rebuild to save time:
ALTER FULLTEXT CATALOG [YourCatalogName] REORGANIZE;
- Ensure the SQL Server service account has read/write permissions to the full-text data directory, typically located at
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\FTData\.
Step 4: Restart the Full-Text Filter Daemon Launcher Service
- On Windows Server 2025 or Windows 11, open Services.msc and locate SQL Full-text Filter Daemon Launcher (MSSQLSERVER).
- Restart the service to clear any stuck crawl threads or locked catalog handles.
- Confirm the service is running under an account with appropriate database engine access, not just a local service account.
Alternative or Verification Steps
- Re-run
SELECT * FROM sys.dm_fts_index_population;to confirm no active or stalled population operations remain for the catalog in question. - If the 9906 message persists with an abnormal state after rebuilding, drop and recreate the full-text index entirely using
DROP FULLTEXT INDEXfollowed byCREATE FULLTEXT INDEXto rule out underlying metadata corruption.