Quan Mai
Optimizely
Quan Mai  -  CMS
Mar 16, 2023
visibility 4307
star star star star star star
(5 votes)

Upgrade to EPiServer.CMS.Core 12.13.1 as soon as you can

Our general recommendation is to keep up to date to latest versions if you can. Outside of new features, it usually contains latest bug fixes and general performance improvement.

CMS.Core 12.13.1 contains two important/critical bug fixes - discovered and fixed by my colleague Magnus Rahl. More details can be found in the release notes

Release Notes | Optimizely Developer Community

Those bugs are especially relevant when you are indexing your content, using Find - as you would be loading a lot of content and then serializing them into JSON objects, leaving a lot of cached items in process. Those can hog memory indefenitely and the only solution would be a restart (if the instance does not restart by itself via AutoHeal). The bug fixes allow cache items to be properly trimmed, and garbage collected, so memory is freed.

Mar 16, 2023

Comments

Mark Stott
Mark Stott Mar 16, 2023 02:02 PM

Thank you for sharing. I'm going to feed that back into the PMs for our CMS 12 clients.

Johan Kronberg
Johan Kronberg Mar 17, 2023 07:48 AM

Thanks! Is there docs page on how would you install it swiftly in you Solution that is using the wrapping EPiServer.CMS composition package? When have that up to date I still need to install 12.13.1 of EPiServer.Framework and EPiServer.Core.CMS. I then get warnings and also need to install 12.13.1 of EPiServer.Hosting, EPiServer.CMS.AspNetCore, EPiServer.CMS.AspNetCore.Templating, EPiServer.CMS.AspNetCore.Routing, EPiServer.CMS.AspNetCore.Mvc, EPiServer.CMS.AspNetCore.HtmlHelpers...
Would it be smarter to just remove <PackageReference Include="EPiServer.CMS" Version="12.17.1" />?

Quan Mai
Quan Mai Mar 17, 2023 01:37 PM

The ones you listed are in "Cms core", they have direct dependency on CMS.Core and .Framework so yes you would need them to be upgraded. EPiServer.CMS is just an umbrella package for CMS UI, removing it would not affect the former.

I would recommend to upgrade all cms core packages at once. they are built that way 

Johan Kronberg
Johan Kronberg Mar 20, 2023 01:27 PM

Thanks for clarifying! Found also on Optimizely Slack that "A project that has the EPiServer.CMS package installed, only needs EPiServer.Hosting and EPiServer.CMS.AspNetCore.HtmlHelpers" so follow that is easier than following the package version warnings, it will drag all dependencies versions along.

Also, it's not always smart to be fast with keeping up to date:
https://world.optimizely.com/blogs/robert-svallin/dates/2023/3/episerver-cms-ui-12-17-0-delisted-from-nuget-feed/

Sometimes a wait and see approach can work in your favor... 😅

Quan Mai
Quan Mai Mar 20, 2023 01:30 PM

Hehe delisting happens, but in general you should keep up to date as much as possible. maybe 1-2 minor version behind if you want to be safe ;) 

Mark Stott
Mark Stott Mar 22, 2023 03:31 PM

If this helps at all, this is what my package includes look like having resolved all of the warnings:

  <ItemGroup>
    <PackageReference Include="Advanced.CMS.AdvancedReviews" Version="1.3.3" />
    <PackageReference Include="Baaijte.Optimizely.ImageSharp.Web" Version="2.1.2" />
    <PackageReference Include="EPiServer.CloudPlatform.Cms" Version="1.3.1" />
    <PackageReference Include="EPiServer.CMS" Version="12.17.1" />
    <PackageReference Include="EPiServer.CMS.AspNetCore.HtmlHelpers" Version="12.13.1" />
    <PackageReference Include="EPiServer.CMS.AspNetCore.Templating" Version="12.13.1" />
    <PackageReference Include="EPiServer.CMS.Core" Version="12.13.1" />
    <PackageReference Include="EPiServer.ContentDeliveryApi.Cms" Version="3.6.0" />
    <PackageReference Include="EPiServer.Find.Cms" Version="15.0.0" />
    <PackageReference Include="EPiServer.Forms" Version="5.5.0" />
    <PackageReference Include="EPiServer.Forms.Samples" Version="4.1.0" />
    <PackageReference Include="EPiServer.Hosting" Version="12.13.1" />
    <PackageReference Include="EPiServer.Labs.LanguageManager" Version="5.1.2" />
    <PackageReference Include="Geta.NotFoundHandler.Optimizely" Version="5.0.6" />
    <PackageReference Include="Geta.Optimizely.Categories" Version="1.0.0" />
    <PackageReference Include="Geta.Optimizely.Categories.Find" Version="1.0.0" />
    <PackageReference Include="Geta.Optimizely.ContentTypeIcons" Version="2.0.2" />
    <PackageReference Include="Geta.Optimizely.Sitemaps" Version="3.1.0" />
    <PackageReference Include="ImagePointEditor" Version="2.2.0" />
    <PackageReference Include="MediatR" Version="12.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="7.0.4" />
    <PackageReference Include="SixLabors.ImageSharp.Web.Providers.Azure" Version="2.0.2" />
    <PackageReference Include="Stott.Optimizely.RobotsHandler" Version="2.5.0" />
    <PackageReference Include="Stott.Security.Optimizely" Version="0.9.2-beta" />
    <PackageReference Include="System.Linq.Async" Version="6.0.1" />
  </ItemGroup>

I went from mostly using the umbrella package of EPiServer.CMS to including the following specific packages to ensure I was running with 12.13.1 without dependency warnings:

  • EPiServer.CMS.AspNetCore.HtmlHelpers
  • EPiServer.CMS.AspNetCore.Templating
  • EPiServer.CMS.Core
  • EPiServer.Hosting

error Please login to comment.
Latest blogs
Surviving a Dirty Feed. Part 3: Error Handling and Event Batching

Committing a 250,000-row Optimizely catalog import row by row, returning a per-row failure report, and coalescing catalog events into one per batch.

Stanisław Szołkowski | Oct 16, 2026 |

Building UI Extensions for Optimizely SaaS CMS

Introduction Developers have been extending the functionality of Optimizely PaaS CMS for years using addons built in C# and deployed as NuGet...

Mark Stott | Oct 15, 2026

Cheapskate AI Translator: Because Translation Should Not Require a Second Mortgage

There is a particular kind of software project that begins with a detailed architecture document, a product roadmap, and a carefully assembled...

Linh Doan Cuu | Oct 15, 2026

Computed Fields in CMS 13 Content Contracts with Optimizely Graph

Content Contracts in Optimizely CMS 13 allow different content types to share a common structure when querying Optimizely Graph. But what if the...

Mardy | Oct 14, 2026