Issues when the Core database is disabled on content delivery servers
Issues when the Core database is disabled on content delivery servers
Sitecore 9.1
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 doesn’t yet fully support this scenario and will throw various errors.
Resolution
The issue has been resolved in the May 17, 2019 release of Coveo for Sitecore by changing the encryption key storage location to the web
database.
Upgrade to the May 17, 2019 release of Coveo for Sitecore and follow the upgrade procedure carefully to regenerate and save the encryption key in its new location (see May 17, 2019 release).