How to fix Error 7669 on Windows Server 2025 / Windows 11

Troubleshooting Guide: Error 7669 — Full-Text Index Population Blocked by Single-User Access Mode

Why This Error Happens

This warning occurs because the database has been placed into SINGLE_USER access mode, which restricts the connection pool to one single session at a time. SQL Server’s full-text indexing engine (the Filter Daemon Host process, MSSQLFDLauncher) requires its own dedicated background connection to crawl and populate the index, and since the single-user session is already occupied (usually by an administrator’s maintenance connection), the full-text crawler is denied access and change tracking is forcibly stopped. This is not a corruption issue; it is a resource contention/locking issue caused by a restrictive database configuration.

Step-by-Step Resolution Guide

Step 1: Identify Active Connections and Database State

  • Open SQL Server Management Studio (SSMS) or Azure Data Studio and connect to the instance.
  • Run the following query to check the current state of the database:
SELECT name, user_access_desc, state_desc 
FROM sys.databases 
WHERE name = 'YourDatabaseName';
  • Confirm that user_access_desc returns SINGLE_USER.

Step 2: Revert the Database to Multi-User Mode

  • Execute the following T-SQL command to restore standard connectivity, which allows the background full-text crawler thread to establish its session:
ALTER DATABASE YourDatabaseName SET MULTI_USER;
  • If this command hangs, it likely means another session is actively holding the single-user lock; you may need to kill that specific session ID (SPID) first using KILL [SPID].

Step 3: Restart the Full-Text Daemon Launcher Service

  • On Windows Server 2025 / Windows 11, open the Services management console (services.msc).
  • Locate SQL Full-text Filter Daemon Launcher (MSSQLSERVER) (or your specific instance name).
  • Right-click and select Restart to clear any hung threads that failed during the single-user lockout.

Step 4: Force a Full Population of the Index

  • Since change tracking was stopped during the outage, automatic incremental updates will not resume on their own; you must manually trigger a full crawl.
  • Run the following command against the specific table referenced in the error log:
ALTER FULLTEXT INDEX ON YourTableName START FULL POPULATION;

Alternative or Verification Steps

  • Verify the Fix: Check the status of the crawl by querying SELECT FULLTEXTCATALOGPROPERTY('YourCatalogName', 'PopulateStatus');. A return value of 0 confirms the population is idle and complete (success).
  • Alternative Fix: If the database refuses to exit single-user mode via standard commands, restart the SQL Server service entirely via PowerShell (Restart-Service MSSQLSERVER -Force) to clear the session table and reset the access mode to default.