Coveo for Sitecore 5 is now available!

Issues When the Core Database Is Disabled on Content Delivery Servers

Sitecore 9.1 Coveo for Sitecore 4.1 (May 2019)

Symptoms

When deploying Coveo for Sitecore on your Content Delivery instance, you get the following error:

Could not find configuration node: databases/database[@id='core']
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Could not find configuration node: databases/database[@id='core']
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: Could not find configuration node: databases/database[@id='core']]
   Sitecore.Configuration.DefaultFactory.GetConfigNode(String xpath, Boolean assert) +543
   Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert) +187
   Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert) +157
   Sitecore.Configuration.DefaultFactory.GetDatabase(String name) +55
   Coveo.Framework.Databases.SitecoreFactoryWrapper.GetDatabase(String p_DatabaseName) +153
   Coveo.Framework.Connection.<>c.<.cctor>b__10_1() +40
   System.Lazy`1.CreateValue() +708
   System.Lazy`1.LazyInitValue() +184
   Coveo.Framework.Connection.CriticalExceptionHandler.GetCriticalErrors() +29
   Coveo.Framework.Connection.CriticalExceptionHandler.GetError(String p_ErrorMessage) +69
   Coveo.Framework.Connection.CriticalExceptionHandler.GetElapsedTimeSinceLastOccurenceOf(String p_CriticalErrorMessage) +10
   Coveo.Framework.Connection.CriticalExceptionHandler.ValidateDelay(String p_ErrorCode) +142
   Coveo.SearchProvider.Licensing.LicenseManager.RetrieveLicense(Boolean p_ForceUpdate) +58
   Coveo.SearchProvider.Licensing.LicenseManager.EnsureValidLicense() +126
   Coveo.SearchProvider.Licensing.LicenseManager.GetLicenseInformation() +98
   Coveo.SearchProvider.Rest.SitecoreRestHttpHandler.InitializeLicenseSettings() +73
   Coveo.SearchProvider.Rest.SitecoreRestHttpHandler.OnInitializeSettings() +85
   Coveo.Search.Api.Proxy.ProxyHttpHandler.OnInitialize() +23
   Coveo.Search.Api.Proxy.ProxyHttpHandler.EnsureInitialized() +92
   Coveo.Search.Api.Proxy.ProxyHttpHandler.ProcessRequest(IHttpContext p_Context) +34
   Coveo.SearchProvider.Rest.SitecoreRestHttpHandlerDispatcher.ProcessRequest(HttpContext p_Context) +275
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +866
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +213
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +91

In your logs, you can also see the following error:

10068 17:40:44 ERROR An error while Initializing occurred
Exception: System.InvalidOperationException
Message: Could not find configuration node: databases/database[@id='core']
Source: Sitecore.Kernel
   at Sitecore.Configuration.DefaultFactory.GetConfigNode(String xpath, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert)
   at Sitecore.Configuration.DefaultFactory.GetDatabase(String name)
   at Coveo.Framework.Databases.SitecoreFactoryWrapper.GetDatabase(String p_DatabaseName)
   at Coveo.Framework.Databases.IndexDatabaseProperties..ctor(IIndexPropertyStore p_PropertyStore)
   at Coveo.Framework.Databases.IndexDatabasePropertiesFactory.CreateIndexDatabaseProperties(IIndexPropertyStore p_PropertyStore)
   at Coveo.SearchProvider.ProviderIndexBase.Initialize()

Cause

Some parts of Coveo for Sitecore are using the Core database to synchronize information between various CD instances.

In Sitecore 9.1, you can disable the Core database. Coveo for Sitecore does not yet fully support this scenario and will throw various errors.

Resolution

The issue has been resolved in the May 2019 release of Coveo for Sitecore 4.1 by changing the encryption key storage location to the web database. Upgrade to the May 2019 release of Coveo for Sitecore 4.1 and follow the upgrade procedure carefully to regenerate and save the encryption key in its new location (see Release Notes for May 2019).