In one of my current projects EPiServer‘s edit mode suddenly stopped working. Only the top bar loaded, while the rest failed due to a JavaScript error (see image below).
NetworkError: 500 Internal Server Error caused by GetResourcesDictionary throwing NullReferenceException
To investigate, we tried surfing to the failing JavaScript resource (http://{host}/EPiServer/Shell/10.7.1.0/ClientResources/EPi/shell/ui/nls/en-us/contenttypes.js) only to discover that the 500 Internal Server Error was caused by a NullReferenceException.
Stack trace included at the bottom to allow for indexing.
Fixing our NullReferenceException in EPiResourcesController
It turned out that this particular NullReferenceException was caused by a malformed EPiServer language file having been pushed to the Git repositor; perhaps not all that straight forward to debug.
Removing the faulty a and trying again fixed the problem.
Server Error in '/' Application. Object reference not set to an instance of an object. 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: System.NullReferenceException: Object reference not set to an instance of an object. 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: [NullReferenceException: Object reference not set to an instance of an object.] EPiServer.Shell.UI.Controllers.EPiResourcesController .GetResourceDictionary(String resourceKey, CultureInfo culture) +729 EPiServer.Shell.UI.Controllers.EPiResourcesController .DojoResources(String pathInfo) +588 lambda_method(Closure , ControllerBase , Object[] ) +138 System.Web.Mvc.ReflectedActionDescriptor .Execute(ControllerContext controllerContext, IDictionary`2 parameters) +228 System.Web.Mvc.ControllerActionInvoker .InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +34 System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +79 System.Web.Mvc.ControllerActionInvoker .InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +453 System.Web.Mvc.ControllerActionInvoker .InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +453 System.Web.Mvc.ControllerActionInvoker .InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +453 System.Web.Mvc.ControllerActionInvoker .InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +453 System.Web.Mvc.ControllerActionInvoker .InvokeAction(ControllerContext controllerContext, String actionName) +982 System.Web.Mvc.Controller.ExecuteCore() +129 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +236 EPiServer.Shell.Web.Mvc.ModuleMvcHandler .ProcessController(IController controller) +50 EPiServer.Shell.Web.Mvc.ModuleMvcHandler .BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +28 System.Web.CallHandlerExecutionStep.System.Web .HttpApplication.IExecutionStep.Execute() +923 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +137 Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1098.0