Forum Discussion
Broken SharePoint list indexes across multiple tenants
a { text-decoration: none; color: #464feb; } tr th, tr td { border: 1px solid #e6e6e6; } tr th { background-color: #f5f5f5; }
Hello everyone,
I’m looking for community input on an issue we are seeing with SharePoint list indexes across multiple tenants.
Over the past two weeks, we have received many reports of views, search, CSOM, and REST queries missing items. After investigation, we found that the root cause appears to be broken list indexes.
This is not isolated to a single list or tenant. We are seeing the same behavior on multiple lists, across multiple sites, in multiple tenants. In all cases, indexed columns stop behaving correctly.
The only workaround we have found is to remove and recreate the index. However, this becomes very problematic when “Enforce unique values” is enabled. If a list contains more than 5,000 items, this option cannot be re‑enabled without drastic steps, such as temporarily removing items from the list.
Example scenario
We have a list with about 25,000 items and a Text column called Identifier, which is indexed and has Enforce unique values enabled. This list has worked perfectly for years but started failing last week.
Users are now seeing the following issues:
- Duplicate Identifiers can be added without any warning, even though unique values are enforced.
- Filtering or searching by Identifier does not return results.
- CSOM and REST queries filtering on Identifier fail to find existing items.
Previously, all of this worked without issue.
Main question
My understanding was that indexed columns should work correctly, even when the total list size exceeds 5,000 items, as long as the result set is below the list view threshold.
However, Microsoft support has indicated that once a list exceeds 5,000 items, correct results cannot be guaranteed, even when filtering on indexed columns.
If this is truly “by design,” it would severely limit the usefulness of SharePoint lists and libraries, as exceeding 5,000 items is very common.
I’d really appreciate hearing:
- Whether others are seeing the same behavior
- If this is truly expected / by design
- Any better workarounds or official guidance
If you know of clear documentation on this topic, please share it. At the moment, our only reliable fallback is retrieving all items and filtering in memory, which is far from ideal.
Thanks in advance!