Exchange 2013 ContentIndexState: Failed

Following on from my previous post, I still could not search through the public folders.

Taking another look at the event viewer I noticed the following errors:

 

Microsoft.Exchange.Search.Fast.PerformingFastOperationException Cannot invoke service method GetFlows

and

Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException Microsoft.Exchange.Search.Core.Abstraction.CatalogReseedException

 

Get-MailboxDatabaseCopyStatus returned the Content Index State as failed.

 

Stop the Exchange Search service
Stop the Exchange Host Search Service
Browse to:

C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\Mailbox Database XXXXXXXXXX\

There will be a folder with a GUID name and the word single on the end. (example: F3C16DF5-58AC-4218-8E38-984C7D6250F112.1.Single)

Rename this folder, add .old to the end of the folder name.

Start the Exchange Host Search Service first then start the Exchange Search service.

Note. The search indexer will take some time to reindex everything on the database.

Use this command to see its status in an Exchange shell:

Get-MailboxDatabaseCopyStatus

Exchange 2013 hostcontrollerservice.exe crashes

I came across an issue with an Exchange 2013 server that could not perform searches within the public folders.

After checking the services, the Exchange Search Host Service was not running. After attempting to restart the service, I noticed the following errors in the event viewer:

 

Application: hostcontrollerservice.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Microsoft.Ceres.HostController.Controller.HostControllerException
Stack:
at Microsoft.Ceres.HostController.WcfServer.WcfService.StartService()
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart()

And

Faulting application name: hostcontrollerservice.exe, version: 15.0.712.0, time stamp: 0x5199c4fd
Faulting module name: KERNELBASE.dll, version: 6.2.9200.16451, time stamp: 0x50988aa6
Exception code: 0xe0434352
Fault offset: 0x000000000003811c
Faulting process id: 0x5464
Faulting application start time: 0x01cf73fceeb096ae
Faulting application path: C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\hostcontrollerservice.exe
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Report Id: 3140d9a6-dff0-11e3-940a-00155de15d01
Faulting package full name:
Faulting package-relative application ID:

 

One of the node.ini files had become corrupted.

Browse to:

C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\HostController\Data\Nodes\Fsis\

For each node, open the folder and browse to \Configuration\Local\ and check the node.ini file with notepad. If the file is empty, the file is corrupted, copy the node.ini from one of the nodes and then start the service.