diff --git a/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs b/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs
index 273d7a6562..d5bab4afb1 100644
--- a/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs
+++ b/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs
@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Cms.Core.Configuration.Models;
+using Umbraco.Cms.Core.Configuration.UmbracoSettings;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Strings
@@ -60,7 +61,18 @@ namespace Umbraco.Cms.Core.Strings
/// The short string helper.
public DefaultShortStringHelperConfig WithDefault(RequestHandlerSettings requestHandlerSettings)
{
- UrlReplaceCharacters = requestHandlerSettings.CharCollection
+ // CharCollection could potentially be null if not invoked first by the framework, for instance in tests, so ensure that it's initialized.
+ IEnumerable charCollection = requestHandlerSettings.CharCollection;
+ if (charCollection is null)
+ {
+ charCollection = requestHandlerSettings.CharCollection;
+ if (charCollection is null)
+ {
+ throw new ArgumentNullException(nameof(requestHandlerSettings.CharCollection));
+ }
+ }
+
+ UrlReplaceCharacters = charCollection
.Where(x => string.IsNullOrEmpty(x.Char) == false)
.ToDictionary(x => x.Char, x => x.Replacement);