opserver / Opserver

Stack Exchange's Monitoring System
https://opserver.github.io/Opserver/
MIT License
4.5k stars 823 forks source link

PagerDuty Object reference not set to an instance of an object. #356

Open arielbvargas opened 4 years ago

arielbvargas commented 4 years ago

Don´t know if it's a configuration error, or an unexpected behaviour:

With the following PagerDutySettings.json: / Configuration for the PagerDuty dashboard / { // (Required) PagerDuty API key "APIKey": "XXXX", "APIBaseURL": "https://XXXX.pagerduty.com/api/v1",

/ Map of Opserver account names (usually Active Directory) to PagerDuty emails With this provided, known users can take on-call because we know how to map the action to. / "userNameMap": [ { // Opserver login (probably Active Directory user name) "opServerName": "administrator", // PagerDuty email "emailUser": "email@server.com" } ] }

OpServer is crashing: System.NullReferenceException: Object reference not set to an instance of an object. at StackExchange.Opserver.Data.PagerDuty.OnCall.get_IsOverride() at ASP._Page_Views_PagerDuty_PagerDuty_OnCallRow_cshtml.Execute() in C:\inetpub\opserver\Views\PagerDuty\PagerDuty.OnCallRow.cshtml:line 14 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at StackExchange.Profiling.Mvc.WrappedView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at ASP._Page_Views_PagerDuty_PagerDuty_cshtml.Execute() in C:\inetpub\opserver\Views\PagerDuty\PagerDuty.cshtml:line 104 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.StartPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at StackExchange.Profiling.Mvc.WrappedView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList filters, ActionResult actionResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass3_1.b5(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<>c.b152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<>c.b20_1(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Full Trace:

at StackExchange.Exceptional.ExceptionalModule.OnError(Object sender, EventArgs args) at System.Web.HttpApplication.RaiseOnError() at System.Web.HttpApplication.RecordError(Exception error) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

Any help is much appreciated!

NickCraver commented 4 years ago

Are you seeing this on latest? The config suggests PagerDuty v1 and we upgraded to their v2 API some time ago (and updated lots of views with it).

arielbvargas commented 4 years ago

Hi Nick! Thanks for your amazing job. I´ve updated opserver and PagerDutySettings.json. I still get:

image

What do you suggest in order to solve this issue?

Thanks in advance!

NickCraver commented 4 years ago

Hmm, check out /admin/errors where the error log details are accessible - see if we can get more info about what the API did respond with. Maybe there's a data type it's not handling here.