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