Sitecore Commerce 93 Error: No connection is available to service this operation
tldr; Free up your disk space
I came across this error in Sitecore Content Editor while click on Category Nodes today and our PM ran into a different but related error on the Storefront at the same time.
After investigating the logs it became apparent that Sitecore was not able to communicate with the Redis cache. Looking at the Redis cache logs revealed that the Redis service kept restarting with the “Redis cannot continue error”. My initial guess was that Redis didn’t have enough memory available and hoped that restarting Redis would resolve it. That didn’t do it. Turns out Redis thought my VM was low on disk space (but it still had 20GB free). After freeing up ~10GB more and restarting the Redis service the issue was resolved.
Based on some error messages in the Redis log looks like this is an issue Redis on Windows only.
Storefront Error:

Content Editor Error:

No connection is available to service this operation: EVAL; IOCP: (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=1,Free=32766,Min=8,Max=32767), Local-CPU: n/a
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: StackExchange.Redis.RedisConnectionException: No connection is available to service this operation: EVAL; IOCP: (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=1,Free=32766,Min=8,Max=32767), Local-CPU: n/a
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.Stack Trace:
StackExchange . Redis . ConnectionMultiplexer . ExecuteSyncImpl (Message message, ResultProcessor` 1 processor, ServerEndPoint server ) + 732
StackExchange . Redis . RedisBase . ExecuteSync (Message message, ResultProcessor` 1 processor, ServerEndPoint server ) + 122
StackExchange . Redis . RedisDatabase . ScriptEvaluate ( String script, RedisKey [ ] keys, RedisValue [ ] values, CommandFlags flags ) + 141
Microsoft . Extensions . Caching . Redis . RedisExtensions . HashMemberGet (IDatabase cache, String key, String [ ] members ) + 188
Microsoft . Extensions . Caching . Redis . RedisCache . GetAndRefresh ( String key, Boolean getData ) + 198
Sitecore . Commerce . Engine . Connect . CommerceRedisCacheStore . Get ( String key ) + 99
Sitecore . Framework . Caching .< ;Get > ;d__14 . MoveNext ( ) in C :\BA\f77fbdb800cd9863\src\Sitecore . Framework . Caching\Cache . cs : 60
[AggregateException : One or more errors occurred . ]
System.Threading . Tasks . Task` 1 . GetResultCore (Boolean waitCompletionNotification ) + 4602897
Sitecore . Commerce . Engine . Connect . CachingRepository . GetCacheEntry ( String cacheEntryKey ) + 121
Sitecore . Commerce . Engine . Connect . DataProvider . CatalogRepository . GetEntityFromCache ( String mixId, String language, Int32 version ) + 222
Sitecore . Commerce . Engine . Connect . DataProvider . CatalogRepository . GetEntityByMappingEntry (MappingEntry mappingEntry, Nullable` 1 version, Boolean ignoreCaching ) + 116
Sitecore . Commerce . Engine . Connect . DataProvider . CatalogRepository . GetItemDefinition (Database database, MappingEntry mappingEntry, String catalogName, Boolean isVariant ) + 158
Sitecore . Commerce . Engine . Connect . DataProvider . ReadOnlyCatalogDataProvider . GetItemDefinition (ID itemId, CallContext context ) + 956
Sitecore . Data . DataProviders . DataProvider . GetItemDefinition (ID itemID, CallContext context, DataProviderCollection providers ) + 156
Sitecore . Data . DataSource . GetItemInformation (ID itemID ) + 88
Sitecore . Data . DataSource . GetParentID (ID itemID ) + 22
Sitecore . Nexus . Data . DataCommands . GetParentCommand . (Item ) + 187
Sitecore . Data . Engines . EngineCommand` 2 . Execute ( ) + 93
Sitecore . Data . Managers . ItemProvider . GetParent (Item item ) + 69
Sitecore . Data . Managers . ItemProvider . GetParent (Item item, SecurityCheck securityCheck ) + 53
Sitecore . Data . ItemPath . DoGetPath (Item currentItem, String separator, ItemPathType type, Item root, Int32 level ) + 388
Sitecore . Data . ItemPath . DoGetPath (Item currentItem, String separator, ItemPathType type ) + 262
Sitecore . Data . ItemPath . DoGetPath (Item currentItem, String from, String separator, ItemPathType type ) + 110
Sitecore . Data . ItemPath . GetPath (Item currentItem, String from, String separator, ItemPathType type ) + 100
Sitecore . Data . ItemPath . get_LongID ( ) + 45
Sitecore . Caching . AccessResultCache . GetKey (ISecurable entity, Account account, AccessRight accessRight, PropagationType propagationType, Boolean includeAdditionalParameters ) + 67
Sitecore . Caching . AccessResultCache . AddRecord (ISecurable entity, Account account, AccessRight accessRight, PropagationType propagationType, AccessResult accessResult ) + 101
Sitecore . Buckets . Security . BucketAuthorizationProvider . AddAccessResultToCache (ISecurable entity, Account account, AccessRight accessRight, AccessResult accessResult, PropagationType propagationType ) + 136
Sitecore . Security . AccessControl . AuthorizationProvider . GetAccess (ISecurable entity, Account account, AccessRight accessRight ) + 233
Sitecore . Security . AccessControl . DefaultAuthorizationManager . GetAccess (ISecurable entity, Account account, AccessRight accessRight ) + 106
Sitecore . Security . AccessControl . DefaultAuthorizationManager . IsAllowed (ISecurable entity, AccessRight right, Account account ) + 105
Sitecore . Security . AccessControl . ItemAccess . CanRead ( ) + 63
Sitecore . Data . Managers . ItemProvider . HasChildren (Item item, SecurityCheck securityCheck ) + 338
Sitecore . Shell . Framework . Commands . ContentEditor . Subitems . QueryState (CommandContext context ) + 76
Sitecore . Shell . Framework . Commands . CommandManager . QueryState (Command command, CommandContext context ) + 37
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . FillParamsFromCommand (CommandContext commandContext, RibbonCommandParams ribbonCommandParams ) + 221
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . GetCommandParameters (Item controlItem, CommandContext commandContext ) + 79
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderLargeGalleryButton (HtmlTextWriter output, Item button, CommandContext commandContext ) + 96
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderButton (HtmlTextWriter output, Item button, CommandContext commandContext ) + 504
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderChunk (HtmlTextWriter output, Item chunk, CommandContext commandContext ) + 348
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderChunk (HtmlTextWriter output, Item chunk, CommandContext commandContext, Boolean isContextual, String id ) + 244
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderChunk (HtmlTextWriter output, Item chunk, CommandContext commandContext, Boolean isContextual ) + 161
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderChunks (HtmlTextWriter output, Item strip, CommandContext commandContext, Boolean isContextual ) + 432
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderStrips (HtmlTextWriter output, Item ribbon, Boolean isContextual, ListString visibleStripList ) + 1622
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . RenderStrips (HtmlTextWriter output, Item defaultRibbon, Item contextualRibbon, ListString visibleStripList ) + 162
Sitecore . Web . UI . WebControls . Ribbons . Ribbon . Render (HtmlTextWriter output ) + 740
System.Web.UI . Control . RenderControlInternal (HtmlTextWriter writer, ControlAdapter adapter ) + 132
Sitecore . Web . HtmlUtil . RenderControl (Control ctl ) + 80
Sitecore . Shell . Applications . ContentManager . ContentEditorForm . UpdateRibbon (Item folder, Boolean isCurrentItemChanged, Boolean showEditor ) + 560
Sitecore . Shell . Applications . ContentManager . ContentEditorForm . Update ( ) + 582
Sitecore . Shell . Applications . ContentManager . ContentEditorForm . OnPreRendered (EventArgs e ) + 192
[TargetInvocationException : Exception has been thrown by the target of an invocation . ]
System . RuntimeMethodHandle . InvokeMethod ( Object target, Object [ ] arguments, Signature sig, Boolean constructor ) + 0
System.Reflection . RuntimeMethodInfo . UnsafeInvokeInternal ( Object obj, Object [ ] parameters, Object [ ] arguments ) + 132
System.Reflection . RuntimeMethodInfo . Invoke ( Object obj, BindingFlags invokeAttr, Binder binder, Object [ ] parameters, CultureInfo culture ) + 146
Sitecore . Reflection . ReflectionUtil . InvokeMethod (MethodInfo method, Object [ ] parameters, Object obj ) + 89
Sitecore . Shell . Applications . ContentManager . ContentEditorPage . OnPreRender (EventArgs e ) + 143
System.Web.UI . Control . PreRenderRecursiveInternal ( ) + 200
System.Web.UI . Page . ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint ) + 7479
Redis Error
Redis can not continue. Exiting.[3736] 28 Jan 19:13:27.367 # fork operation failed
[3736] 28 Jan 19:13:27.523 # Background saving terminated by signal 1
[3736] 28 Jan 19:13:33.008 * 1 changes in 900 seconds. Saving…
[3736] 28 Jan 19:13:33.071 * Background saving started by pid 18168
[18168] 28 Jan 19:13:33.352 #
The Windows version of Redis reserves heap memory from the system paging file
for sharing with the forked process used for persistence operations.At this time there is insufficient contiguous free space available in the
system paging file. You may increase the size of the system paging file.
Sometimes a reboot will defragment the system paging file sufficiently for
this operation to complete successfully.
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.4250.0