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

Troubleshooting Guide: Error 4169 – Multiple TREAT Applications in Full-Text Property Reference

Why This Error Happens

Error 4169 occurs when a query attempts to apply the TREAT AS clause more than once to the same expression within a full-text property reference, which SQL Server 2025’s query parser explicitly disallows. This typically arises from malformed Dynamic Data Masking or type-casting logic layered over a CONTAINS/FREETEXT predicate, often introduced by ORM-generated queries or nested views referencing the same full-text indexed column. In some cases, this is also triggered by corrupted or outdated query plan cache entries that retain a stale, double-cast execution plan after a schema change.

Step-by-Step Resolution Guide

Step 1: Identify the Offending Query

  • Capture the exact T-SQL statement triggering Error 4169 using SQL Server Profiler or Extended Events (xel trace filtered on Error Number = 4169).
  • Check the query execution plan XML for repeated <ScalarOperator>TREAT</ScalarOperator> nodes referencing the same column.
  • Note the specific full-text indexed column and table name involved.

Step 2: Review and Simplify the TREAT/CAST Logic

  • Open the query or stored procedure in SQL Server Management Studio (SSMS) 21.
  • Remove redundant TREAT AS or nested CAST/CONVERT calls wrapping the same full-text column reference.
  • Rewrite the predicate so CONTAINS() or FREETEXT() references the raw column directly, e.g., WHERE CONTAINS(ProductDescription, 'wireless') instead of double-wrapped type assertions.
  • If the query originates from an ORM (Entity Framework, Hibernate), inspect the generated SQL and override it with a raw SQL query or stored procedure call.

Step 3: Clear and Rebuild the Full-Text Catalog

  • Open SSMS and connect to the affected instance.
  • Run: ALTER FULLTEXT CATALOG [YourCatalogName] REBUILD;
  • Rebuild the specific full-text index: ALTER FULLTEXT INDEX ON [Schema].[TableName] START FULL POPULATION;
  • Clear the stale query plan cache: DBCC FREEPROCCACHE; (use cautiously on production during a maintenance window).

Step 4: Update SQL Server Cumulative Updates

  • Navigate to Windows Update or the Microsoft Update Catalog on Windows Server 2025 / Windows 11.
  • Confirm SQL Server 2025 is patched to the latest Cumulative Update (CU), as early CU releases had known full-text parser regressions affecting TREAT handling.
  • Restart the SQL Server service via services.msc or Restart-Service MSSQLSERVER in PowerShell after patching.

Alternative or Verification Steps

  • Re-run the original query after the catalog rebuild and confirm Error 4169 no longer appears in sys.dm_exec_requests or the SQL Server error log (Get-Content "C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG").
  • If the error persists, isolate the query further by testing the CONTAINS predicate alone (without any TREAT/CAST wrapping) in a new session to confirm the full-text index itself is healthy.