Troubleshooting Guide: Error 9902 – Full-Text Catalog Low on System Resources
Why This Error Happens
Error 9902 occurs when SQL Server’s Full-Text Engine detects insufficient system resources—typically memory, disk space, or worker threads—to continue populating or crawling a full-text catalog. This is commonly triggered by memory pressure from the MSFTESQL filter daemon host process, low disk space on the volume hosting the catalog files, or an excessive number of concurrent full-text population operations competing for the same resource pool. The pause is a self-protective mechanism, not a corruption, but repeated occurrences usually point to an underlying resource ceiling (memory limits, disk quota, or thread starvation) that needs to be addressed.
Step-by-Step Resolution Guide
Step 1: Check Available Disk Space and Catalog File Location
- Navigate to the full-text catalog directory, typically under
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\FTData\. - Confirm at least 20% free space remains on the drive hosting the catalog; low disk space is a top trigger for reason code 2 in this error.
- If space is low, move the catalog to a different filegroup/drive using
ALTER FULLTEXT CATALOG [CatalogName] REBUILDafter relocating viaALTER DATABASE ... MODIFY FILE.
Step 2: Review and Adjust Memory Allocation for Full-Text Engine
- Open SQL Server Management Studio (SSMS) and run
sp_configure 'max server memory (MB)'to verify SQL Server isn’t starved of memory for theMSFTESQLfilter host. - Check Windows Task Manager or Performance Monitor (
perfmon.exe) for memory pressure onsqlservr.exeandfdhost.exeprocesses. - If running on a constrained VM in Windows Server 2025, increase allocated RAM or lower
max server memoryto leave headroom (recommend at least 2-4 GB free for OS and FTE operations).
Step 3: Reduce Concurrent Population Load
- Check how many full-text indexes are populating simultaneously using:
SELECT * FROM sys.dm_fts_index_population;
- Stagger population jobs instead of running full population on multiple large tables at once.
- Use
ALTER FULLTEXT INDEX ON [TableName] SET CHANGE_TRACKING MANUALto control when crawls occur, avoiding resource spikes during peak hours.
Step 4: Restart the Full-Text Filter Daemon Host Service
- Open Services.msc on Windows Server 2025 / Windows 11.
- Locate SQL Full-text Filter Daemon Launcher (MSSQLSERVER) and restart it.
- This clears any stuck threads or memory leaks within the
fdhost.exeprocess without requiring a full SQL Server restart.
Step 5: Review SQL Server Error Log for Reason Code Details
- Open the SQL Server Error Log via SSMS (Management > SQL Server Logs) or the raw file at
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG. - Cross-reference the specific “Reason code” number reported in Error 9902 against Microsoft’s documentation to confirm whether it’s memory (1), disk (2), or thread pool (3) related.
- Apply the targeted fix from Steps 1-4 based on the confirmed reason code.
Alternative or Verification Steps
- Verify the fix by querying
SELECT * FROM sys.dm_fts_index_population;and confirming thestatus_descriptionshows “In progress” or “Idle” rather than “Paused” for an extended period. - If the error persists after resource remediation, rebuild the entire catalog as a last resort:
ALTER FULLTEXT CATALOG [CatalogName] REBUILD WITH ACCENT_SENSITIVITY = ON;and monitor the error log during the subsequent crawl.