title: Argh! Why does System.Web.Mvc.HandleErrorInfo get passed to my views?
body: <p>I'm experiencing a rather frustrating problem. My MVC site runs fine for the most part, but randomly throws an error (which shows a friendly error to the user). When I check the logs, this is what I get:</p>
  
  <pre><code>System.InvalidOperationException: The model item passed into the dictionary is of type 'System.Web.Mvc.HandleErrorInfo' but this dictionary requires a model item of type 'BaseViewData'.
  </code></pre>
  
  <p>Moments later, the same user could hit refresh and the page loads fine. I'm stuck. ;(</p>
  
  <p><strong><em>Update: added stack trace</em></strong></p>
  
  <pre><code>System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---&gt; System.InvalidOperationException: The model item passed into the dictionary is of type 'System.Web.Mvc.HandleErrorInfo' but this dictionary requires a model item of type 'BaseViewData'.
     at System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value)
     at System.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary dictionary)
     at System.Web.Mvc.HtmlHelper`1..ctor(ViewContext viewContext, IViewDataContainer viewDataContainer, RouteCollection routeCollection)
     at System.Web.Mvc.ViewMasterPage`1.get_Html()
     at ASP.views_shared_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
     at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
     at System.Web.UI.Control.Render(HtmlTextWriter writer)
     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
     at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
     at System.Web.UI.Page.Render(HtmlTextWriter writer)
     at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer)
     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     --- End of inner exception stack trace ---
     at System.Web.UI.Page.HandleError(Exception e)
     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     at System.Web.UI.Page.ProcessRequest()
     at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
     at System.Web.UI.Page.ProcessRequest(HttpContext context)
     at ASP.views_shared_error_aspx.ProcessRequest(HttpContext context)
     at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext)
     at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page)
     at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer)
     at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
     at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
     at System.Web.Mvc.Controller.ExecuteCore()
     at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
     at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
     at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
     at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
     at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
     at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
  </code></pre>