ContentEngine deadlock because of missing Korean WordBreaker rule files

Applies To
Exchange Server SE

Symptoms

After you install the September 2026 Security Update for Microsoft Exchange, Exchange environments that process email messages that contain Korean language content might experience one or more of the following symptoms:

  • Search results might be missing.
  • Email delivery might be delayed.
  • MAPI or Outlook clients might become unresponsive, stall, or disconnect.

Cause

The required assembly files for the updated Korean WordBreaker are not installed as part of the September 2026 Security Update for Microsoft Exchange.

Resolution

To work around this issue, you require the following two external rule-data files for the updated Korean WordBreaker:

Required file Bytes SHA256
ko.token.rule.bin 56132 8F2BD853593913EB8F73DCD4FCAC4216F216A0FF76A4569DF071BE3C36773010
ko.complex.rule.bin 717792 0390D1E9A76EF33283025CF8F164430E311584B9535949C4EA1A74B6BB107B87

Note

Use this procedure only for affected installations that meet the specified build and installed DLL verification criteria and are missing both rule files. Do not apply the procedure based on symptoms alone. If either rule file already exists, or if any required verification check fails, stop and contact Microsoft Support before making any changes to the installation.

Obtain the two rule files

Note

Matching copies of both files are included in Microsoft's publicly available SQL Server 2025 Express RTM package (English x64). Download and extract the package on a management workstation rather than on an Exchange server.

The procedure below uses the package's extract-only mode together with Windows Installer's administrative-image mode. It does not install SQL Server and does not require any additional software or custom scripts.

Create a working folder, such as C:\Temp\KoreanRules, and ensure it has sufficient free space for the installation media and extracted files. The commands below use this folder as the working directory.

On the management workstation, open PowerShell as Administrator. If you use a different working folder, update the paths in all commands accordingly.

Important

Run all commands in PowerShell as Administrator on the computer specified in each section. Windows Terminal can be used with a PowerShell tab. Run each command separately. If a command reports an error, stop before continuing to the next command.

  1. Download SQLEXPR_x64_ENU.exe from Microsoft into the working folder. The verified package is version 17.0.1000.7, with a file size of 748772024 bytes. In File Explorer, open its Properties > Digital Signatures, select the Microsoft signature and open Details. Confirm that the signature is valid. Calculate the file's SHA256:

    Get-FileHash -LiteralPath 'C:\Temp\KoreanRules\SQLEXPR_x64_ENU.exe' -Algorithm SHA256
    

    Compare the displayed hash with:

    74AA90C11202A5524E769B9BC22531BAEF22D91E9B2D2E8C3CB99E89A65C5297
    

    Stop the procedure if the digital signature is invalid, the hash command fails, or the calculated hash does not match the expected value. These instructions apply only to this exact package.

  2. Extract the SQL media into the new Media subfolder. Use the EXE's extract-only switch exactly as shown; do not launch SQL Setup:

    $process = Start-Process 'C:\Temp\KoreanRules\SQLEXPR_x64_ENU.exe' -ArgumentList '/q /x:"C:\Temp\KoreanRules\Media"' -Wait -PassThru
    

    After the command finishes, immediately check its exit code:

    $process.ExitCode
    

    The command runs quietly. The -Wait parameter waits for completion, and -PassThru returns the process object. Continue only if $process.ExitCode is 0 and C:\Temp\KoreanRules\Media\x64\Setup\SQL_FULLTEXT.MSI exists. If extraction fails, stop; do not continue with a partial folder.

  3. Extract the Full-Text package into a new Files subfolder by using Windows Installer's administrative-image mode:

    $arguments = '/a "C:\Temp\KoreanRules\Media\x64\Setup\SQL_FULLTEXT.MSI" TARGETDIR="C:\Temp\KoreanRules\Files" /qn /norestart /L*V "C:\Temp\KoreanRules\extract.log"'
    

    Run the administrative extraction with these parameters:

    $process = Start-Process msiexec.exe -ArgumentList $arguments -Wait -PassThru
    

    After the command finishes, immediately check its exit code:

    $process.ExitCode
    

    The /a switch creates a source image; it does not perform a normal local product installation. Do not replace /a with /i, double-click the MSI, or run SQL Setup. Wait for completion and check the exit code immediately. Continue only if it is 0. If it is not, stop and retain C:\Temp\KoreanRules\extract.log for troubleshooting.

  4. Locate the two rule files in:

    C:\Temp\KoreanRules\Files\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Binn\ftcomponents\wordbreakers
    

    The files already have the required names, ko.token.rule.bin and ko.complex.rule.bin. No renaming is required. Calculate each SHA256:

    Get-FileHash -LiteralPath 'C:\Temp\KoreanRules\Files\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Binn\ftcomponents\wordbreakers\ko.token.rule.bin' -Algorithm SHA256
    

    Next, calculate the hash of ko.complex.rule.bin:

    Get-FileHash -LiteralPath 'C:\Temp\KoreanRules\Files\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Binn\ftcomponents\wordbreakers\ko.complex.rule.bin' -Algorithm SHA256
    

    Compare the displayed SHA256 hashes and file sizes against the required file identities listed above. A successful Get-FileHash command only confirms that the hash was calculated; you must still verify that it matches the expected value. Stop the procedure if either the hash or file size differs from the required value.

  5. Transfer only the two verified BIN files to a temporary staging folder on the affected Exchange server. Do not transfer the complete extracted SQL media or the Files folder.

    Do not copy SQL's korwbrkr.dll or any other SQL components into Exchange. The SQL DLL is a different version; only the two rule-data files are used in this workaround.

Verify the installation and copy the files

Perform the following checks locally on one affected Exchange server before making changes. Use the actual Exchange installation directory; do not assume a particular drive or default path. Replace <ExchangeInstallPath> with that directory before running the commands below.

  1. Confirm that the local <ExchangeInstallPath>\Bin\ExSetup.exe file version is 15.02.2562.049. Verify the installed korwbrkr.dll in the following directory against the table below:

    <ExchangeInstallPath>\Bin\Search\Ceres\Native
    
    Installed file (verify only; do not replace) Expected SHA256
    korwbrkr.dll
    Version 16.0.5194.1000
    326544 bytes
    1C6BD8E144BA677EBCC83323AE59DB3881918170F9B3A5189B44611558B92C61

    Use the file's Properties > Details tab to check its version. To calculate the installed DLL's SHA256, run:

    Get-FileHash -LiteralPath '<ExchangeInstallPath>\Bin\Search\Ceres\Native\korwbrkr.dll' -Algorithm SHA256
    

    If the build, DLL version or DLL hash differs, stop and review applicability with Microsoft Support.

  2. Confirm that both ko.token.rule.bin and ko.complex.rule.bin are absent from that Native directory. If either file is already present, stop; do not overwrite existing files.

  3. Recheck the hashes of the two staged BIN files after transfer, using Get-FileHash -LiteralPath '<full path to file>' -Algorithm SHA256. Copy, do not move, only those two files into the Native directory beside the installed DLL. Make sure the copied files receive the directory's normal inherited read permissions. Do not replace the DLL, lexicon, configuration files or runtime libraries.

  4. Calculate the hashes of both destination files:

    Get-FileHash -LiteralPath '<ExchangeInstallPath>\Bin\Search\Ceres\Native\ko.token.rule.bin' -Algorithm SHA256
    

    Next, calculate the hash of ko.complex.rule.bin:

    Get-FileHash -LiteralPath '<ExchangeInstallPath>\Bin\Search\Ceres\Native\ko.complex.rule.bin' -Algorithm SHA256
    

    Compare them with the required file identities above. Continue only if both hashes match and the files have the expected read permissions.

Restart Search Host Controller

  1. During an agreed maintenance window, run the following command locally in elevated PowerShell:

    Restart-Service -Name HostControllerService
    

    This restarts the Search and content-processing processes and temporarily interrupts their work. If the service does not stop normally, stop the procedure and contact Microsoft Support instead of force-terminating Exchange processes. Do not restart all servers at the same time.

Verify recovery before proceeding to another server

  1. In Task Manager > Details, enable the Command line column. Locate the Noderunner.exe process whose command line contains ContentEngineNode1 in its --noderoot path. Its executable is:

    <ExchangeInstallPath>\Bin\Search\Ceres\Runtime\1.0\ResourceProfile\contentengine\NodeRunner.exe
    

    There can be several Noderunner processes. Check this specific instance, not just any process with that name. Host Controller starts it automatically; do not start it manually. If it does not start or repeatedly exits, stop before proceeding to another server.

  2. For a mailbox whose active database is hosted on the changed server, verify delivery and server-side search for new ordinary messages and messages containing Korean language text by using Outlook on the web (OWA). A running service or process alone does not prove recovery.

  3. Verify that the originally affected workload has recovered, including mail delivery or Outlook connectivity where applicable. Monitor the existing indexing backlog separately; successful indexing of new messages does not establish that all older items have been processed.

    Repeat the server-side steps on other affected servers with matching installations, one server at a time, only after verifying the result on the first server.

More information

  • Microsoft is investigating this issue and will update this article as more information becomes available.