I ran into a particularly unique issue where any user was unable to create alerts for one discussion board. All other libraries, lists, and discussion boards worked and the same users could create alerts with no problem.
Steps to validate you’re hitting this particular problem:
1. Go to a Document Library, list, or discussion board
2. Create a new alert from a list or discussion board by select Actions/Alert me
3. Fill out the New Alert Page and click OK
Result: Get the following error: “Unknown Error”
This error doesn’t give you enough information. In order to get more information, it’s necessary to enable a couple options in the associated web.config file.
Edit the corresponding web.config file and change the following values:
1. Access IIS Manager
2. Right click the appropriate site, choose explore
3. Right click the web.config
4. Open With, NotePad
Should now look like the following:
5. Change the customErrors and CallStack to the following:
6. Save the web.config and now attempt to reproduce the issue.
7. Now the error should look like:
“Object reference not set to an instance of an object. at Microsoft.SharePoint.ApplicationPages.SubNewEditBasePage.SetAlertProperties(SPAlert a, SPWeb web, SPList list, String strAlertTemplateName, RadioButtonList RadioBtnEventType, RadioButtonList RadioBtnAlertFreq, RadioButtonList RadioBtnAlertFilter, TextBox TextTitle, DropDownList DdlView) at Microsoft.SharePoint.ApplicationPages.SubNewPage.BtnCreateAlert_Click(Object sender, EventArgs e) 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) ”
This error occurs because the discussion board, list, or document libraries original dispform.aspx was deleted using SharePoint designer. We have some dependencies on the original dispform.aspx so if this is ever deleted within SharePoint designer, this problem will occur.
The best resolution is to restore the problem discussion board, list, or document library prior to when the deletion occurred. The other method is to move the items to a new library. A variety of options are available to move data over. The object model can be leveraged or the items can be moved over via Manage Content and Structure. While these methods work fine for Lists and Document libraries, discussion boards are a little more challenging. I found the easiest way to move Discussion board items was using Outlook.
Note: Using Outlook to move discussion board items will not preserve the metadata.
I used SharePoint designer and my custom list is pointed to my new dispform.aspx. Can I delete the old dispform.aspx which I renamed?
Even if SharePoint designer is used to point to a new dispform.aspx, you must keep the original. You can rename it but it needs to say put.