This project has moved and is read-only. For the latest updates, please go here.

error on submit

May 17, 2010 at 12:18 PM

when submitting a ticket it creates it but has this error:

If you go back to the helpdesk the ticket is there. also there seems to be a problem with the assign button.

System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: source
   at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector)
   at TicketDesk.Engine.Linq.Ticket.CreateTicketEventNotificationsForComment(Int32 commentId, String commentBy) in C:\Users\stephenr\Desktop\TicketDesk_1.2.3_Source\TicketDesk\Engine\Linq\Ticket.cs:line 94
   at TicketDesk.Engine.NotificationService.QueueTicketEventNotification(TicketComment comment) in C:\Users\stephenr\Desktop\TicketDesk_1.2.3_Source\TicketDesk\Engine\NotificationService.cs:line 55
   at TicketDesk.NewTicket.CreateTicketButton_Click(Object sender, EventArgs e) in C:\Users\stephenr\Desktop\TicketDesk_1.2.3_Source\TicketDesk\NewTicket.aspx.cs:line 36
   at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   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.newticket_aspx.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


many thanks


May 17, 2010 at 12:55 PM

Based on the location of the error, I would guess that your instance of ticketdesk probably does not have any users assigned to the helpdesk role. The section of code at line 94 (in the current source version at least) tries to select from the list of help desk users. It does so in a way that would fail (null value) if there were no users in this role.

Create at least one user, assign them to the helpdesk role, and the problem should go away.


May 17, 2010 at 1:34 PM
Edited May 17, 2010 at 1:45 PM


it is AD driven,

it turned out it fidnt like a long name for a group. recreated the group with a shorter name and so far seems to be working. except for the new post i created which may or may not be related

May 17, 2010 at 1:49 PM

Yeah... AD has a lot of odd little quirks like that.

I'm considering a major change in 2.0 for AD sites where the system maintains it's own internal user accounts for all users on any platform, and just allow you to associate that user account with an AD user identity. It would use the AD only for the basic authentication. Additional user details would be stored locally and it would not use AD groups at all for internal roles and permissions. 

Cutting out the reliance on AD for groups and user metadata would be simpler to maintain and less prone to bugs. Probably would also be simpler from an admin and support standpoint to in most environments.