Skip to content
Optimizely

Optimizely CMS 12 Known Issues and Gotchas

A practitioner reference of documented issues, root causes, and workarounds for Optimizely CMS 12 (and CMS 13 preview where relevant).

Issue 1: Deep ContentArea Nesting Performance Cliff

Section titled “Issue 1: Deep ContentArea Nesting Performance Cliff”

Symptoms: Pages with deeply nested ContentAreas (blocks within blocks within blocks) load slowly (5-10+ seconds).

Root Cause: N+1 query problem — each nested block loads separately.

Workaround: Use bulk loading with IContentLoader.GetItems():

// BAD: Lazy loading (N+1 queries)
foreach (var item in mainContentArea.FilteredItems)
{
var block = _contentLoader.Get<IContent>(item.ContentLink);
// Process block
}
// GOOD: Bulk loading (single query)
var contentReferences = mainContentArea.FilteredItems
.Select(item => item.ContentLink)
.ToList();
var blocks = _contentLoader.GetItems(contentReferences, new LoaderOptions())
.ToList();
foreach (var block in blocks)
{
// Process block
}

Status: Inherent architectural limitation, mitigated by bulk loading pattern.

Issue 2: Background Task DbContext Conflicts (Fixed in 2026)

Section titled “Issue 2: Background Task DbContext Conflicts (Fixed in 2026)”

Symptoms: Background tasks (scheduled jobs) fail with DbContext conflicts:

System.InvalidOperationException: A second operation started on this context before a previous operation completed

Root Cause: Multiple background tasks sharing DbContext instance.

Fix: Fixed in 2026 release (CMS-46456): All background tasks now execute in isolated context.

Impact: Resolved for CMS 12 sites on 2026+ releases.

Issue 3: CMS 13 Content Graph Mandatory (Cannot Disable)

Section titled “Issue 3: CMS 13 Content Graph Mandatory (Cannot Disable)”

Symptoms: CMS 13 site won’t start without Content Graph credentials configured.

Root Cause: Content Graph is enabled by default in CMS 13 and cannot be disabled.

Workaround: Add Content Graph configuration to appsettings.json (even if not using headless):

{
"EPiServer": {
"ContentGraph": {
"GatewayAddress": "https://cg.optimizely.com/",
"Secret": "your-content-graph-secret-key",
"AppKey": "your-app-key",
"SingleKey": "your-single-key"
}
}
}

Obtain credentials from Optimizely Cloud portal, Content Graph settings.

Impact: Medium — requires Content Graph setup for all CMS 13 projects.

Issue 4: Assembly Version Mismatch After Migration

Section titled “Issue 4: Assembly Version Mismatch After Migration”

Symptoms: Content types fail to load after CMS 11 to 12 migration:

TypeLoadException: Could not load type 'MyProject.Models.ArticlePage'

Root Cause: Content types stored in database reference old assembly versions.

Fix: Update assembly versions in database or use assembly binding redirects in appsettings.json.

Symptoms: Optimizely Find index rebuild for 100,000+ content items takes 4-8 hours.

Workaround:

  • Use incremental indexing (index changes only)
  • Schedule full rebuilds during off-peak hours
  • Split large indexes into multiple smaller indexes (by content type)