Chris Weldon bio photo

Chris Weldon

A savvy software engineer and agilist, Chris slings code in C#, but has also been known for commanding fleets of systems. He's currently a Tech Lead at Wolters Kluwer.

Email Twitter Facebook Github

Today I ran into a slew of interesting errors while working on my customer’s SharePoint 2010 instance. They reported they were receiving errors while trying to search for content on their sites. As is typical, searching had worked before, but was no longer working. For reference, the error when they used the little search box below the ribbon was none other than the obligatory useless standard SharePoint error message:

Useless SharePoint Error

If you get this, it’s time to crack open the Event Viewer and the SharePoint Logs. If you’re not on a single server environment (aka: a Farm), trying to find the Correllation ID is going to be truly fun. However, once you’ve found the Correllation ID, look for the next Unexpected or Critical error. Initially, I came across the following Unexpected error:

CoreResultsWebPart::OnInit: Exception initializing: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.SetPropertiesOnQueryReader()
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.OnInit(EventArgs e)

with the detailed exception being:

Internal server error exception: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.SetPropertiesOnQueryReader()
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.OnInit(EventArgs e) System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.SetPropertiesOnQueryReader()
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.OnInit(EventArgs e)

However, when I went digging a little further, I found the following error. If you find it as well, you’re on the same track that I am:

Failed to connect to FASTSEARCHSERVER:PORT Failed to initialize session with document engine: Unable to resolve Contentdistributor

FASTSEARCHSERVER:PORT is the server and port of the FAST Search Service you should have already installed. If you find this, your query service application may not be able to talk to the FAST Search Server. I suggest you check for one (or all) of the following.

Ensure the FAST Search Services are Running

First, log in to all to all servers where you have installed the FAST Search Services. You’ll need to open the Services Management console by doing the following:

  1. Go to Start > Run
  2. Type services.msc and press enter
  3. If you have UAC, you'll be prompted for your Admin username and password

In the list of services, search for the following and make sure all are started:

  • FAST Search for SharePoint
  • FAST Search for SharePoint Monitoring
  • FAST Search for SharePoint Sam Admin
  • FAST Search for SharePoint Sam Worker

If any of them are not started, I suggest shutting them all down. From there, only start the FAST Search for SharePoint service. This should start the other three services as well. Once they are all started, perform an iisreset on the web front ends (especially the one running the SharePoint Search Query and Site Settings Service) and try the search again.

SSL Certificate Problem

If the search is still failing after doing the above check, you need to check to see if the SSL Certificate used for FAST Search communication has expired. I found a great TechNet article (which points to an even better Blog Post by SharePoint Malarkey regarding this problem. Review the instructions in the blog post to verify whether you indeed have this problem.

Is Anyone the Query Server?

If you continue to receive errors after performing the above steps, check your SharePoint logs again for the Correllation ID. Somewhere around there you may find the following Unexpected error that looks similar to that at the top of this blog post:

CoreResultsWebPart::OnInit: Exception initializing: Microsoft.SharePoint.SPEndpointAddressNotFoundException: There are no addresses available for this application.

If you look above this error, you may find another Critical error:

There are no instances of the Microsoft.Office.Server.Search.Administration.SearchQueryAndSiteSettingsServices started on any server in this farm.

If you indeed see these exceptions, then you need to check this out. Do the following:

  1. Go to Central Administration
  2. Go to Application Management > Manage Services on Server
  3. Go through each of the Servers and see if any of them have the Search Query and Site Settings Service started.
  4. If none have this service started, start this service on the same server that's running SharePoint Server Search according to the Servers in Farm page.
  5. Run iisreset on the server where you found the Correllation ID.

By this point, things should start looking up and you should actually get a search page with results.