After you install an update for Microsoft Exchange Server 2019, you may get incomplete results when you search for items in a mailbox.
During each Exchange Server upgrade, the Microsoft Search Foundation is reinstalled. Although this process is not always completed successfully, such a failure doesn't stop the Exchange Server upgrade from being completed.
In this situation, the upgraded server appears to be fully functional. However, several issues will affect the services that are associated with the Microsoft Search Foundation. For example, the Microsoft Exchange Search service is disabled, or the Noderunner.exe process is stopped. Because of these issues, the server that's running Exchange Server stops indexing mailbox items. If the indexing failure continues for an extended period, the mailbox items that aren't indexed will go into a permanent failure state.
At any time after the items go into this failure state, if the issues that affect the search processes are fixed, the server will resume indexing items. By default, however, the server won’t try to index the items that went into a permanent failure state. Therefore, those items won’t appear in search results.
To resolve this issue, create a new override for the items that are in a permanent failure state, and then reindex the items. Follow these steps:
Create a setting override by running the following cmdlet:
New-SettingOverride -Name "Big Funnel Permanent Retry" -Component "BigFunnel" -Section "BigFunnelFailedItemsQuerySettings" -Parameters @("ExcludePermanentFailures=false") -Reason "Re-Index Messages" -MinVersion "<Build Number>" -MaxVersion "<Build Number>"
Note In this cmdlet, replace <Build Number> with the number of the Exchange Server build that's running on the server that contains the affected mailbox.
Update the configuration by running the following cmdlet:
Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh
After you run this cmdlet, you should see the BigFunnel.Overrides.ini file in the %ExchangeInstallPath%\v15\config directory.
Trigger Exchange Server to index the mailbox items that were not indexed previously. To do this, run the following cmdlet:
Start-MailboxAssistant -Identity <mailbox ID> -AssistantName BigFunnelRetryFeederTimeBasedAssistant
In this cmdlet, replace <mailbox ID> with the name of the affected mailbox.
The name of the assistant that's used in the cmdlet (BigFunnelRetryFeederTimeBasedAssistant) is case-sensitive.
The cmdlet is available in Exchange Server 2019 cumulative update 11 and later versions.
This cmdlet does not address all index-related issues. Instead, it reminds the Exchange Search service to index items that were never indexed and are in the NonIndexed state.
Note: The setting override helps you avoid having to move mailboxes in order to reindex items. However, we recommend that you do not leave the override set in the environment permanently because it can cause increased CPU usage. After the items are reindexed, remove the override by using the Remove-SettingOverride cmdlet.