SaaS CMS has officially launched! Learn more now.

Error in ContentEventIndexer

Vote:
 

After upgrading to EPiServer v 10.+ and Epi Find to 12.3.2.0, the following error is found in the log, multiple times per minute:

 
2017-03-06 16:30:27,779 [129] ERROR EPiServer.Find.Cms.ContentEventIndexer: An exception occurred while indexing (IContent). Error getting value from 'AttributesString' on 'Castle.Proxies.TextareaElementBlockProxy'..
Newtonsoft.Json.JsonSerializationException: Error getting value from 'AttributesString' on 'Castle.Proxies.TextareaElementBlockProxy'. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: httpContext


at System.Web.HttpContextWrapper..ctor(HttpContext httpContext)
at EPiServer.Forms.Implementation.Elements.BaseClasses.DataElementBlockBase.GetAutofillValues()
at EPiServer.Forms.Implementation.Elements.BaseClasses.InputElementBlockBase.GetAttributes()
at EPiServer.Forms.Core.BlockBase.get_AttributesString()
at GetAttributesString(Object )

....

The website and Epi Find search although is working as expecting. What could be the cause of this error?

#175932
Mar 06, 2017 19:53
Vote:
 

Hi, 

we've just got the same error on Episerver logs. It seems that these items are not indexed properly and are stuck in the indexing queue...

Any ideas?

...

at EPiServer.Find.Api.BulkCommand.Execute()
at EPiServer.Find.Cms.ContentIndexer.IndexWithRetry(IContent[] contents, Int32 maxRetries)
at EPiServer.Find.Cms.ContentIndexer.Index(IEnumerable`1 content, IndexOptions options)
at EPiServer.Find.Cms.ContentIndexer.IndexFrom(ContentReference contentLink, Boolean includeRootPage, IndexOptions indexOptions)
at EPiServer.Find.Cms.ContentEventIndexer.Sync(IEnumerable`1 contentToIndex, HashSet`1 contentToIndexSet, Func`1 index)
at EPiServer.Find.Cms.ContentEventIndexer.IndexPageQueue(IEnumerable`1 contentToIndex)
at EPiServer.Find.Cms.ContentEventIndexer.IndexPageQueue()

...

BR, Esa

#176788
Edited, Mar 27, 2017 13:09
Vote:
 

We solved it by telling EPiServer Find to exclude the Forms elements, something like:

ContentIndexer.Instance.Conventions.ForInstancesOf<IContent>().IndexingInContentAreas(x =>
{
   if (x is IElementBlock)
   {
      return false;
   }
   return true;
});

#176790
Mar 27, 2017 13:17
Vote:
 

I also had to add 

ContentIndexer.Instance.Conventions.ForInstancesOf<IContent>().ShouldIndex(x => !(x is IElementBlock));

As it was trying to index the form elements from the Media Content folder as well for items in shared,

#179223
Jun 05, 2017 17:36
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.