Troubleshooting Guide: SQL Server Error 9977 – Full-Text Catalog Population Mismatch
Why This Error Happens
This warning occurs when SQL Server detects that the metadata timestamp stored in the full-text catalog files on disk does not match the population timestamp recorded in the database’s internal system tables. This desynchronization typically happens after a database is detached and reattached, restored from a backup, or moved to a new server/drive without a proper full-text catalog rebuild. It can also result from an improper shutdown or disk-level corruption that leaves the catalog files in an inconsistent state relative to the database engine’s records.
Step-by-Step Resolution Guide
Step 1: Verify the Full-Text Service Status
- Open SQL Server Configuration Manager on your Windows Server 2025 / Windows 11 machine.
- Confirm that the SQL Full-Text Filter Daemon Launcher service (MSSQLFDLauncher) is running for your specific instance.
- If stopped, right-click and select Start, then set the Startup Type to Automatic.
Step 2: Rebuild the Affected Full-Text Catalog
- Open SQL Server Management Studio (SSMS) and connect to the instance reporting the error.
- Navigate to Databases > [Your Database] > Storage > Full Text Catalogs.
- Right-click the specific catalog mentioned in the error log and select Rebuild.
- Alternatively, run the following T-SQL command to force a rebuild:
ALTER FULLTEXT CATALOG [YourCatalogName] REBUILD;
Step 3: Force a Full Population
- Once the rebuild completes, the catalog will be empty, so you must repopulate it.
- Execute the following query to start a full crawl, which aligns the file timestamps with the database records:
ALTER FULLTEXT CATALOG [YourCatalogName] START FULL POPULATION;
- Monitor the
sys.dm_fts_index_populationdynamic management view to track progress until the status shows “Idle.”
Step 4: Check File System Permissions
- If the rebuild fails, navigate to the physical directory where the catalog resides (usually within the
DATAfolder of your SQL instance, e.g.,C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\). - Right-click the folder, go to Properties > Security, and ensure the SQL Server service account (e.g.,
NT Service\MSSQLSERVER) has Full Control permissions.
Alternative or Verification Steps
- Verification: Run
SELECT * FROM sys.fulltext_catalogs;and check theis_fulltext_stoplist_defaultand population status columns to confirm the catalog is marked as “Available” and no longer flagged as corrupt in the SQL Server Error Log. - Alternative Fix: If the rebuild repeatedly fails due to file locking, stop the SQL Server service entirely via
services.msc, manually delete the orphaned catalog folder from the file system, restart the service, and then recreate the full-text catalog from scratch usingCREATE FULLTEXT CATALOG.