Loading content in project fails if version limit exceeded

Fixed in

EPiServer.CMS.Core 11.3.3

Created

Dec 21, 2017

Updated

Feb 02, 2018

Area

CMS Core

State

Closed, Fixed and tested


Description

Steps to reproduce:

  1. Go to admin -> config -> system settings and set maximum number of version to 1.
  2. Go to edit and create a project.
  3. Add a version of contentA to the new project.
  4. Change so that you don't use any project.
  5. Create new versions of contentA.
  6. Change to the project created in step 2.

Expected: To see contentA
Actual:

  • You get a 404 response in the browser for ContentA
  • You might get a popup in the ui saying:
    "Failed loading content with the url/uri: epi.cms.contentdata:///6"
  • You might get warnings in your log saying things like:

2017-12-20 04:15:49,994 [13] WARN EPiServer.Cms.Shell.UI.Rest.Internal.CmsContentContextResolver: Content not found. Failed loading content with content link: 10260
EPiServer.Core.PageNotFoundException: Content with id 4745 was not found
   at EPiServer.Core.Internal.DefaultContentLoader.Get[T](ContentReference contentLink, LoaderOptions loaderOptions)
   at EPiServer.Core.Internal.DefaultContentLoader.<GetAncestors>d__24.MoveNext()
   at System.Linq.Enumerable.<OfTypeIterator>d__92`1.MoveNext()
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
   at EPiServer.Cms.Shell.UI.Rest.Capabilities.LanguageSettingsCapability.IsCapable(IContent content)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at EPiServer.Cms.Shell.UI.Rest.Capabilities.ContentCapabilitiesResolver.GetContentCapabilities(IContent content)
   at EPiServer.Cms.Shell.UI.Rest.Internal.CmsContentContextResolver.ToContentDataContext(ContentReference requestedContentReference, IContent content, ContentLanguageInformation languageInformation, Uri requestedUri, UrlBuilder requestedUrl)
   at EPiServer.Cms.Shell.UI.Rest.Internal.CmsContentContextResolver.TryResolveUri(Uri uri, ClientContextBase& instance)

or:

2017-12-21 03:57:28,188 [14] WARN EPiServer.Cms.Shell.UI.Rest.Internal.CmsContentContextResolver: Content not found. Failed loading content with content link: 10260
EPiServer.Core.PageNotFoundException: Content with id 4745 was not found
   at EPiServer.Core.Internal.DefaultContentLoader.Get[T](ContentReference contentLink, LoaderOptions loaderOptions)
   at EPiServer.Core.Internal.DefaultContentLoader.Get[T](ContentReference contentLink)
   at EPiServer.Web.Routing.Segments.Internal.DefaultUrlSegmentRouter.ResolveContentForOutgoing(ContentReference contentLink)
   at EPiServer.Web.Routing.Segments.Internal.NodeSegment.GetOutgoingUrl(ContentReference contentLink, String language)
   at EPiServer.Web.Routing.Segments.Internal.NodeSegment.GetOutgoingUrl(ContentReference contentLink, String language)
   at EPiServer.Web.Routing.Segments.Internal.NodeSegment.GetOutgoingUrl(ContentReference contentLink, String language)
   at EPiServer.Web.Routing.Segments.Internal.NodeSegment.GetVirtualPathSegment(RequestContext requestContext, RouteValueDictionary values)
   at EPiServer.Web.Routing.Segments.SegmentBase.GetVirtualPathSegment(RequestContext requestContext, RouteValueDictionary values, HashSet`1 usedValues)
   at EPiServer.Web.Routing.Segments.Internal.NodeSegment.GetVirtualPathSegment(RequestContext requestContext, RouteValueDictionary values, HashSet`1 usedValues)
   at EPiServer.Web.Routing.Internal.DefaultContentRoute.AddVirtualPathFromSegments(StringBuilder virtualPath, RequestContext requestContext, RouteValueDictionary values, HashSet`1 usedValues, Int32 lastNonDefaultIndex)
   at EPiServer.Web.Routing.Internal.DefaultContentRoute.GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
   at EPiServer.Web.Routing.Internal.DefaultUrlResolver.GetUrlFromRoute(ContentReference contentReference, String language, RouteValueDictionary routeValues, RequestContext requestContext)
   at EPiServer.Web.Routing.Internal.DefaultUrlResolver.GetVirtualPath(ContentReference contentLink, String language, VirtualPathArguments arguments)
   at EPiServer.Web.Routing.UrlResolver.GetUrl(ContentReference contentLink, String language, VirtualPathArguments virtualPathArguments)
   at EPiServer.Cms.Shell.IContentExtensions.PublicUrl(IContent content, String language, RouteValueDictionary routeValues, UrlResolver urlResolver)
   at EPiServer.Cms.Shell.UI.Rest.Internal.CmsContentContextResolver.ToContentDataContext(ContentReference requestedContentReference, IContent content, ContentLanguageInformation languageInformation, Uri requestedUri, UrlBuilder requestedUrl)
   at EPiServer.Cms.Shell.UI.Rest.Internal.CmsContentContextResolver.TryResolveUri(Uri uri, ClientContextBase& instance)