If you already know how to install the Coveo for Sitecore package and are having fun with it for a while, you are most likely to know what the Coveo Diagnostic Page is. In few words, that is a webpage which is part of the Coveo package that is able to execute a bunch of automated tests in your instance to check if everything is in place and if you are ready to start using your Coveo Search Pages.

You can find a direct link to the Diagnostic Page on your Control Panel right here:

And by opening it you should see something like this:

A Quick Overview

Coveo keeps plenty of useful stuff in that page. On this post, I will give you a more detailed explanation about the section Coveo for Sitecore components state. But it is worth mentioning that you can also do:

Download a diagnostic package, which is really useful if you need to open a support ticket

Confirm whether your Sitecore and Coveo versions are compatibles

See the enabled Coveo configuration files

Confirm whether the Coveo items are published to the web database

Have access to a log viewer

See a list of all currently active indexes you have on your instance

Coveo for Sitecore Components State

The main goal of this article is to clarify what exactly those tests mean and what you should check in case some of them are failing. Let’s cut the small talk and pass to the action!

Cloud Service

Objective: Confirm if the Coveo Cloud service is up and running. It does that by performing a GET to the following address:

https://platform.cloud.coveo.com/monitoring/health

How to fix it: Firstly go to your showconfig.aspx page and search the <cloudPlatformUri> node. If its value is different from https://platform.cloud.coveo.com just fix it. If it is already the right one, that means that maybe your current machine cannot reach the Coveo Platform address. Do you have some firewall rule in place? Double check that. If you can confirm that the communication is not the issue here, then probably the Cloud Coveo platform is experiencing some issues. Go to the Coveo Cloud status page and check if there is any service down.

Cloud Service Organization

Objective: Confirm that your Cloud organization is healthy and ready to be used. It does that by performing a GET to the following address:

https://platform.cloud.coveo.com/rest/organizations/{ORGANIZATION_ID}/status

How to fix it: If you just created your organization that means there is nothing abnormal about this and the error message should be clear: your organization is still being provisioned. Just wait and within a few minutes this test should become green.

Cloud Service Sources Endpoint

Objective: Confirm that the index sources are created at the Coveo Cloud platform. It does that by performing a GET to the following address:

https://platform.cloud.coveo.com/rest/organizations/{ORGANIZATION_ID}/sources

How to fix it: Did you perform your initial rebuild? This step will create your sources. You can always go directly to the Coveo Cloud platform and check if there is something wrong with them.

Coveo for Sitecore is enabled

Objective: Confirm that the Coveo configuration files are enabled. It does that by searching for the node /sitecore/coveo/defaultIndexConfiguration on your configuration.

How to fix it: Make sure all Coveo configuration files on the folders App_Config/Modules and App_Config/Include have a .config extension.

Coveo Index Crawlers

Objective: Confirm that every root element of the crawlers of your Coveo indexes exists on the master database.

How to fix it: Well, make sure those root elements exist on your master database.

Coveo Pipeline Names Configuration

Objective: Confirm that the casing of the Coveo pipeline names is correct. The list of pipelines to be verified:

coveoItemProcessingPipeline, coveoPostItemProcessingPipeline, coveoFieldConverterPipeline, coveoFieldNameTranslatorPipeline, coveoAutomaticBoostingPipeline, inheritsFromCoveoTemplate and coveoAnalyticsPipeline.

How to fix it: Simply fix the casing of those pipeline names above and you should be fine.

Coveo Search REST Endpoint

Objective: Confirm that your instance has a site definition which the name attribute is coveorest. Then grab its virtualFolder attribute (the default value for this attribute is /coveo/rest) and perform a POST call to this endpoint. If no exception is raised that means that this test will be all green.

How to fix it: Make sure you have a coveorest site definition on your configuration. Then make sure its virtualFolder is pointing to a valid endpoint. If everything is alright until here, then you should troubleshoot a security or communication issue.

Coveo Security Service

Objective: Confirm that the Coveo package can talk to your instance. It does that by performing a POST to the following address using a SOAPAction header:

http://{SitecoreInstanceURL}/sitecore%20modules/Web/Coveo/WebService/SitecoreWebService.asmx/GetVersion

How to fix it: If you look at your logs you are probably receiving a 401 Unauthorized. Again, double check your security level on this webservice and make sure the Coveo package can communicate with this endpoint properly.

Sitecore’s Configuration

Objective: Confirm that the method Factory.GetConfiguration() return a valid configuration for the current instance.

How to fix it: Don’t even bother about this test. If it fails… You have bigger problems to worry about.

Let’s Never Forget…

A general rule of thumb when dealing with Sitecore issues is to always start by checking your logs. Coveo does an amazing job logging everything relevant about any issue they may encounter. So don’t be shy to take your time and really go deep on those logs, you are most likely to find the real root cause of your failed test. Well, if after all these tips and troubleshooting you still can’t find what is going on, Coveo has the best customer service on the industry, so just contact their support and let them do their magic.