November Happy Hour will be moved to Thursday December 5th.

What does this error message in editor mode mean?

Vote:
 

I have an error that I'm pretty sure has to do with bad event replication (can't recreate if not in a load balanced environment). This error occurs when trying to edit the start page and Episerver starts making some AJAX Get requests. The Url is https://domain.se/EPiServer/cms/Stores/contentdata/5_160?dojo.preventCache=1479455634252 and the entire error message is ->

Error occuredUser IPUser AgentUrlReferer

2016-11-18 08:53:29
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
http://domain.se:80/EPiServer/cms/Stores/contentdata/5
(none)

Exception details:

InvalidOperationException: Failed to Get because of circular references

Stack trace:

[InvalidOperationException: Failed to Get because of circular references]
   at EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler.ValidateCircularReference(ContentReference contentLink, HashSet`1 visitedContents)
   at EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler.GetSetting(ContentReference contentLink, HashSet`1 visitedContents)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler.GetSetting(ContentReference contentLink, HashSet`1 visitedContents)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler.GetSetting(ContentReference contentLink, HashSet`1 visitedContents)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler.Get(ContentReference contentLink)
   at EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler.Get(ContentReference contentLink, String languageBranch)
   at EPiServer.Core.Internal.LanguagePipeline.Pipe(ContentReference contentLink, IContent contentInstance, LoaderOptions loaderOptions, Func`3 loadingDelegate)
   at EPiServer.Core.Internal.ProviderPipelineImplementation.GetItem(ContentProvider provider, ContentReference contentLink, LoaderOptions loaderOptions)
   at EPiServer.Core.Internal.DefaultContentLoader.TryGet[T](ContentReference contentLink, LoaderOptions loaderOptions, T& content)
   at EPiServer.Core.Html.StringParsing.ContentFragment.GetContent(Boolean enableMasterLanguageFallback)
   at EPiServer.Core.Html.StringParsing.ContentFragment.GetSecurityDescriptor()
   at EPiServer.Core.ContentAreaItem..ctor(ContentFragment fragment)
   at EPiServer.Core.ContentArea.<>c.b__19_0(ContentFragment fragment)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.ObjectModel.ObservableCollection`1.CopyFrom(IEnumerable`1 collection)
   at EPiServer.Core.ContentArea.get_Items()
   at EPiServer.Cms.Shell.Json.Internal.ContentAreaConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeDictionary(JsonWriter writer, IDictionary values, JsonDictionaryContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
   at EPiServer.Shell.Services.Rest.RestResult.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult)
   at EPiServer.Shell.Services.Rest.RestControllerBase.EndExecute(IAsyncResult asyncResult)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

So I used DotPeak to see what this DefaultLanguageSettingsHandler is doing but I can't get my head araound it.


What I can see from DotPeak is that this ValidateCircularReference throws this InvalidOperationException when "visitedContents" contains the same page

    private void ValidateCircularReference(ContentReference contentLink, HashSet visitedContents)
    {
      if (visitedContents != null && visitedContents.Contains(contentLink))
      {
        DefaultContentLanguageSettingsHandler.log.Warn((object) string.Format("Failed to Get because there are circular references for contents : '{0}'", (object) string.Join(",", visitedContents.Select((Func) (c => c.ToString())))));
        throw new InvalidOperationException("Failed to Get because of circular references");
      }
    }
If I check the log I can see this 
2016-11-18 10:49:05,285 [159] WARN EPiServer.Core.Internal.DefaultContentLanguageSettingsHandler: Failed to Get because there are circular references for contents : '84,5,1,4'

so I ran a sql query and got this
pkId fkParentID ContentPath Content typ
1 NULL . SysRoot
4 1 .1. SysContentFolder
5 1 .1. UtvecklingStartPage
84 4 .1.4. SysContentAssetFolder

Now the page I'm on is that with pkId 5 and this page has one property, a Content area, that for the moment is empty. So I have no clue why I get this circular exception.

based on al this information I have three questions

1. What is DefaultLanguageSettingsHandler responsible of?
2. Why and when can this error occur? (I mean, how can the start page reference it self when there is no content on it?)
3. How do I make this error dissapear?

Thanks.
#171829
Nov 18, 2016 11:08
Vote:
 

This is something we experienced with cms core 10.0.1. Have you filed a bug/ticket with Episerver, Andreas?

#172181
Nov 25, 2016 11:30
Vote:
 

Hi, No I haven't filed a bug but if you have this issue as well I will do that so it can be fixed.

Bug has now been reported.

#172187
Edited, Nov 25, 2016 12:39
* 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.