Try our conversational search powered by Generative AI!

Empty object in catalog cache

Vote:
 

We are experiencing a random problem where Episerver cannot read cache items. Have anyone seen this - and how can this happen?
This is preventing our customer from going live.

The exception:

2020-06-18 15:24:04,511 [28] ERROR Company.Backend.Services.CatalogService: Exception message: Unknown object of type System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 found with cache key EPPageData:8341__CatalogContent. Expected type EPiServer.Core.IContent, EPiServer, Version=11.12.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7, Content reference id: 8341.
System.InvalidOperationException: Unknown object of type System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 found with cache key EPPageData:8341__CatalogContent. Expected type EPiServer.Core.IContent, EPiServer, Version=11.12.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7
at EPiServer.Framework.Cache.ObjectInstanceCacheExtensions.TryGetWithWait[T](IObjectInstanceCache cache, String cacheKey, T& instance)
at EPiServer.Framework.Cache.ObjectInstanceCacheExtensions.TryGet[T](IObjectInstanceCache cache, String cacheKey, ReadStrategy strategy, T& instance)
at EPiServer.Core.Internal.ConteCompanynstanceCache.TryGet(ContentReference contentLink, String language, IContent& instance)
at EPiServer.Core.ContentProvider.LoadContentFromCacheOrRepository(ContentReference contentreference, ILanguageSelector selector)
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.Internal.DefaultContentLoader.Get[T](ContentReference contentLink, LoaderOptions loaderOptions)
at Geta.EPi.Extensions.ContentReferenceExtensions.Get[T](ContentReference contentReference)
at Company.Backend.Services.CatalogService.GetProductReferencesFromCategory(CategoryNode categoryNode) in D:\a\1\s\Company.Backend\Services\CatalogService.cs:line 93


The way we can reproduce the error is by visiting products on the site. After some time and clicks - the error occurs. We also have a script using curl to visit a lot of products repeatedly, and most often if takes some time (4+ hours) before the error appears and sometimes even faster.
Once the error has occurred once many other calls fails like

  • _contentRepository.GetDescendents(categoryNode.ContentLink)
  • In UI "Catalog" it wont list anything when clicking on a category that contains content which cannot read the cache. From console this error appears (an exception is thrown in backend as well similar to above): "Unable to load /EPiServer/cms/Stores/contentstructure/?referenceId=1073741825_134624_CatalogContent&query=getchildren&market=ALL&includeProperties=true&allLanguages=true&toplevel=true&currentCategory=1073741825_134624_CatalogContent&simplified=false&sortMode=false&sort(+typeSortIndex)&dojo.preventCache=1592489709272 status: 500"

"Episerver Developer Tool" tell us, that the type cached is of type system.object, but the expected type is IContent.
We have inspected the cache item and the value - after serializing it to json - is: {} . Empty curly brackets, as an empty object.

It is a small catalog with 200 products and about 600 variants. About half exists in three languages.

Versions:
- CMS: 11.12
- Commerce: 13.5

#224395
Edited, Jun 18, 2020 15:01
Vote:
 

I think the issue is related to this bug https://world.episerver.com/support/Bug-list/bug/CMS-15475.
It has fixed in CMS 11.15.

#227690
Sep 10, 2020 9:17
Vote:
 

Thanks for replying. By the description it could be the solution. If I get the chance to test this again (now the caching have been removed) I will write back here.

#227695
Sep 10, 2020 10:28
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* 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.