SharePoint 2016: Discussion Board - My Discussions View - Problem and Workaround
Problem
With out-of the box Discussion Board in SharePoint 2016, when you try to navigate to the My Discussions view, users receive the following error:
Analysis
The ULS log contains the following entries related to the Corellation ID in the error message. And, I noticed that internally, the view queries field Author.
- Throttled:Big list slow query. List item query elapsed time: 0 milliseconds, Additional data (if available): Query HRESULT: 80070024 List internal name, flags, and URL: {BEB8BA57-E62A-41DE-A037-4C5DE6D6C02A}, flags=0x00a0000020c01088, URL="http://{site}/_layouts/15/inplview.aspx?List={BEB8BA57-E62A-41DE-A037-4C5DE6D6C02A}&View={D61B6953-6AAD-4084-A58C-AC63A2444811}&ViewCount=0&IsXslView=TRUE&IsCSR=TRUE&HasOverrideSelectCommand=TRUE&ListViewPageUrl=http://{site}/Discussions/AllItems.aspx" Current User: 4 Query XML: "<Query><OrderBy UseIndexForOrderBy="TRUE" Override="TRUE"/><Where><Eq><FieldRef Name="Author"/><Value Type="Integer"><UserID Type="Integer"/></Value></Eq></Where></Query>" SQL Query: "N/A"
- Unable to execute query: Error 0x80070585
- SPRequest.GetListItemDataWithCallback2: UserPrincipalName=i:0).w|s-1-5-21-224234051-1631930953-1592849230-1147, AppPrincipalName= ,pSqlClient=<null> ,bstrUrl=http://{site} ,bstrListName={BEB8BA57-E62A-41DE-A037-4C5DE6D6C02A} ,bstrViewName=<null> ,bstrViewXml=<View><Query><OrderBy UseIndexForOrderBy="TRUE" Override="TRUE"/><Where><Eq><FieldRef Name="Author"/><Value Type="Integer"><UserID Type="Integer"/></Value></Eq></Where></Query><ViewFields><FieldRef Name="ID"/><FieldRef Name="PermMask"/><FieldRef Name="Created"/><FieldRef Name="Modified"/><FieldRef N ,fSafeArrayFlags=SAFEARRAYFLAG_AUTOHYPERLINK
- System.Runtime.InteropServices.COMException: Invalid index. (Exception from HRESULT: 0x80070585),
StackTrace: at Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData()
at Microsoft.SharePoint.SPListItemCollection.get_Count()
at Microsoft.SharePoint.WebControls.SPDataSourceView.ExecuteSelect(DataSourceSelectArguments selectArguments, String aggregateString, Boolean wantReturn, BaseXsltListWebPart webpart, SPListItem& listItem, SPListItemCollection& listItems, String[]& fieldList)
at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigatorInternal()
at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigator()
at Microsoft.SharePoint.SPList.RenderListData(XsltListViewWebPart xslWebPart, SPView view, TextWriter output)
at Microsoft.SharePoint.SPList.RenderListDataPrivate(XsltListViewWebPart xslWebPart, SPView view, TextWriter writer)
at Microsoft.SharePoint.SPList.RenderAsHtml(SPQuery query, SPView view, String viewGuid, Boolean forceXslView, Boolean ecbMode, Boolean renderEcb, Boolean ignoreQString, Boolean renderForRenderListData, Boolean forceXslRender)
at Microsoft.SharePoint.ApplicationPages.InplaceViewEditor.RenderListView()
at Microsoft.SharePoint.ApplicationPages.InplaceViewEditor.Execute(String strCmd)
at Microsoft.SharePoint.ApplicationPages.InplaceViewEditor.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
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.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
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)
Then, I checked the Author field properties:
| Title | InternalName | Indexed | Hidden |
|---|---|---|---|
| $Resources:core,Content_Version; | ContentVersion | True | |
| App Created By | AppAuthor | False | |
| App Modified By | AppEditor | False | |
| Approval Status | _ModerationStatus | False | True |
| Approver Comments | _ModerationComments | False | True |
| Attachments | Attachments | False | False |
| Best Response Id | BestAnswerId | False | False |
| Body | Body | False | False |
| Body | MessageBody | False | True |
| Body Was Expanded | BodyWasExpanded | False | True |
| Client Id | SyncClientId | True | |
| Content Type | ContentType | False | False |
| Content Type ID | ContentTypeId | False | True |
| Copy Source | _CopySource | False | True |
| Correct Body To Show | CorrectBodyToShow | False | True |
| Created | Created | False | False |
| Created | Created_x0020_Date | True | |
| Created By | Author | False | |
| Created By | MyAuthor | False | |
| Discussion Subject | DiscussionTitle | False | False |
| Discussion Title | DiscussionTitleLookup | True | |
| Edit | Edit | False | False |
| Edit Menu Table End | _EditMenuTableEnd | False | True |
| Edit Menu Table Start | _EditMenuTableStart | False | True |
| Edit Menu Table Start | _EditMenuTableStart2 | False | True |
| Effective Permissions Mask | PermMask | False | True |
| E-Mail Messages | RelevantMessages | False | True |
| E-Mail Sender | EmailSender | False | False |
| Encoded Absolute URL | EncodedAbsUrl | False | True |
| File Name | BaseName | False | True |
| File Type | File_x0020_Type | False | True |
| Folder Child Count | FolderChildCount | False | |
| Full Body | FullBody | False | True |
| GUID | GUID | False | True |
| Has Copy Destinations | _HasCopyDestinations | False | True |
| HTML File Type | HTML_x0020_File_x0020_Type | False | True |
| ID | ID | False | False |
| Indentation | Indentation | False | True |
| Indentation Level | IndentLevel | False | True |
| Instance ID | InstanceID | False | True |
| Is Answered | IsAnswered | True | True |
| Is Current Version | _IsCurrentVersion | False | True |
| Is Featured Discussion | IsFeatured | True | False |
| Is Root Post | IsRootPost | False | True |
| Item Type | FSObjType | True | |
| Last Reply By | LastReplyBy | False | |
| Last Updated | DiscussionLastUpdated | True | False |
| Less Link | LessLink | False | True |
| Level | _Level | False | True |
| Limited Body | LimitedBody | False | True |
| Message ID | MessageId | False | True |
| Modified | Last_x0020_Modified | True | |
| Modified | Modified | False | False |
| Modified By | Editor | False | |
| Modified By | MyEditor | False | |
| More Link | MoreLink | False | True |
| Name | FileLeafRef | False | True |
| Name | LinkFilename | False | True |
| Name | LinkFilename2 | False | True |
| Name | LinkFilenameNoMenu | False | True |
| Order | Order | False | True |
| owshiddenversion | owshiddenversion | False | True |
| Parent Folder Id | ParentFolderId | False | True |
| Parent Item Editor | ParentItemEditor | False | |
| Parent Item ID | ParentItemID | False | False |
| Path | FileDirRef | True | |
| Post | BodyAndMore | False | False |
| Posted By | PersonImage | False | True |
| Posted By | PersonViewMinimal | False | False |
| Posting Information | StatusBar | False | True |
| ProgId | ProgId | True | |
| Property Bag | MetaInfo | True | |
| Question | IsQuestion | False | False |
| Quoted Text Was Expanded | QuotedTextWasExpanded | False | True |
| References | EmailReferences | False | True |
| Replies | ItemChildCount | False | |
| Reply | ReplyNoGif | False | False |
| Restricted | Restricted | True | |
| ScopeId | ScopeId | True | |
| Select | SelectTitle | False | True |
| Server Relative URL | ServerUrl | False | True |
| Shortest Thread-Index | ShortestThreadIndex | False | True |
| Shortest Thread-Index Id | ShortestThreadIndexId | False | True |
| Shortest Thread-Index Id Lookup | ShortestThreadIndexIdLookup | True | |
| Sort Type | SortBehavior | True | |
| Subject | LinkDiscussionTitle | False | False |
| Subject | LinkDiscussionTitle2 | False | False |
| Subject | LinkDiscussionTitleNoMenu | False | False |
| Subject | LinkTitleNoMenu | False | True |
| Subject | Title | False | False |
| Thread Index | ThreadIndex | False | True |
| Thread Topic | ThreadTopic | False | True |
| Threading | Threading | False | False |
| Threading Controls | ThreadingControls | False | True |
| Title | LinkTitle | False | False |
| Title | LinkTitle2 | False | True |
| Toggle Quoted Text | ToggleQuotedText | False | True |
| Trimmed Body | TrimmedBody | False | True |
| Type | DocIcon | False | False |
| UI Version | _UIVersion | False | True |
| Unique Id | UniqueId | True | |
| URL Path | FileRef | True | |
| Version | _UIVersionString | False | False |
| Workflow Instance ID | WorkflowInstanceID | False | True |
| Workflow Version | WorkflowVersion | False | True |
And, the field is not indexed.
Workaround
Making the field Author indexed fixes the issue
```powershell
$web = Get-SPWeb '{site url}'
$list = $web.Lists['Discussions']
$field = $list.Fields.GetFieldByInternalName('Author')
$field.Indexed = $true
$field.Update()
```

Comments
Post a Comment