Gravatar for dipsindol@gmail.com

Question by DEEPTHI KATTA, Jan 9, 2017 11:56 PM

Error on CD Server constructor not found

Hi There,

We have a CM and two CD architecture. on CD server we have a new publishing target for best practice purposes. So, we defined a new DB and continued instructions per scalability steps to configure our CD's. Replacing and adding per instructions that refer to Pub database on documentation mentioned here - https://developers.coveo.com/display/public/SitecoreV4/Coveo+for+Sitecore+Scaling+Guide

I am currently stuck with the below error. Any thoughts on what we need check here.

CM looks perfect, the error is only on CD's.

    [ConfigurationException: Could not create instance of type: Sitecore.ContentSearch.LuceneProvider.LuceneIndex. No matching constructor was found.]
   Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) +272
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +131
   Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +1013
   Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +552
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +275
   Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +579
   Sitecore.ContentSearch.ContentSearchManager.get_SearchConfiguration() +266
   Coveo.Framework.ContentSearch.ContentSearchManagerWrapper.get_Indexes() +11
   Coveo.SearchProvider.ContentSearch.CoveoIndexFetcher.GetCoveoSearchIndexes() +30
   Coveo.SearchProvider.ContentSearch.CoveoIndexFetcher.GetCoveoSearchIndexesForDatabase(String p_DatabaseName) +156
   Coveo.SearchProvider.Utils.CoveoIndexUtilities.GetDefaultCoveoIndex(ISitecoreContext p_SitecoreContext, ICoveoIndexFetcher p_CoveoIndexFetcher) +261
   Coveo.SearchProvider.Rest.SitecoreRestHttpHandlerDispatcher.ProcessRequest(HttpContext p_Context) +182
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +508
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +92
Gravatar for dipsindol@gmail.com

Comment by DEEPTHI KATTA, Jan 10, 2017 12:38 AM

Answering my own question.

I could make the below work. The reason I was getting below exception was due to a list file disabled Sitecore.ListManagement.Lucene.Index.List.config which caused an orphan entry on one of my patch files. I removed the orphan entry and now I get the rest response back.

http://domain/coveo/rest/v2 works.

But, I am still getting error that -

Precondition failed: The parameter 'p_SearchIndex' must not be null 
Parameter name: p_SearchIndex 

The configurations I attached are still the same, I disabled all indexes on CoveoSwitchmaster except for the one that matches to liveweb.

Any thoughts on this?

Full error -

[ArgumentNullException: Precondition failed: The parameter 'p_SearchIndex' must not be null
Parameter name: p_SearchIndex]
   Coveo.Framework.CNL.Precondition.NotNull(Object p_Parameter, String p_ParameterName) +293
   Coveo.UI.Expressions.ExpressionBuilderFactory.CreateBoostExpressionBuilder(ISearchIndex p_SearchIndex, IRulesHelper p_RulesHelper, ISitecoreHelper p_SitecoreHelper) +142
   Coveo.UI.Mvc.Models.SearchBaseModel.get_BoostExpressions() +111
   Coveo.UI.Mvc.Models.SearchBaseModelOptionsWriter.GetObjectToSerialize(ISearchBaseModel p_Instance) +281
   Coveo.UI.Mvc.Models.BaseJavaScriptWriter`1.GetJavaScriptObject(T p_Instance) +234
Gravatar for flguillemette@coveo.com

Comment by François Lachance-Guillemette, Jan 10, 2017 11:50 AM

Have you check other topics on answers such as

https://answers.coveo.com/questions/6848/precondition-failed-the-parameter-p_searchindex-must-not-be-null

https://answers.coveo.com/questions/7208/getting-errorprecondition-failed-the-parameter-psearchindex-must-not-be-null-parameter-name-psearchindex-from-cd-server

Gravatar for dipsindol@gmail.com

Comment by DEEPTHI KATTA, Jan 13, 2017 12:49 AM

Yeah I had looked at all this already. Our situation was different as we had different web databases on CM and CD, for reference the reason this error was happening though I was thinking I was doing correct is because on switch config of Coveo I was disabling all other indexes which I do not need. But, Coveo by default tries to pick index that matches the context DB assigned on site node. Once I changed the site DB to what I prefer everything seemed to be working.

0 Reply
Ask a question