InvalidOperationException thrown after server restart


Description

An unhandled exception might be thrown when the server restarts after site deployment or during scaling out. The issue occurs only for the first request to the application after a restart. The second and all subsequent requests to application are processed as expected. The issue does not have any significant impact on scaling and site visitors. The following error message might appear:

[InvalidOperationException: Illegal recursion detected: GetModel]
   Sitecore.Mvc.Common.RecursionPreventer..ctor(String title, Flag flag) +173
   Sitecore.Mvc.Presentation.Rendering.GetModel() +73
   Sitecore.Mvc.Presentation.Rendering.get_Model() +31
   Sitecore.XA.Foundation.Mvc.Wrappers.Rendering.get_Item() +35
   Sitecore.XA.Feature.SiteMetadata.Repositories.MetadataBaseRepository`1.GetMetatag(String property, ID fieldId) +33
   Sitecore.XA.Feature.SiteMetadata.Repositories.MetadataBaseRepository`1.<BuildModelMapping>b__4_0(KeyValuePair`2 id) +24
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +302
   System.Linq.WhereEnumerableIterator`1.MoveNext() +124
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +436
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +69
   Sitecore.XA.Feature.SiteMetadata.Repositories.TwitterMetadata.TwitterMetadataRepository.GetMetaTags() +36
   Sitecore.XA.Feature.SiteMetadata.Repositories.MetadataBaseRepository`1.GetModel() +73
   Sitecore.XA.Feature.SiteMetadata.Controllers.TwitterMetadataController.GetModel() +26
   Sitecore.XA.Feature.SiteMetadata.Controllers.MetadataController.Index() +22
   lambda_method(Closure , ControllerBase , Object[] ) +90
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +229
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +35
   System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +80
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +452
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +452
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +530

This issue affects SXA 1.6.0 - 1.8.1 versions.

Solution

To resolve the issue, download and install the appropriate patch available on this page:
https://github.com/SitecoreSupport/Sitecore.Support.247244/releases

To get a solution for other SXA releases, contact Sitecore Support.