I have an application I built in SharePoint Online which uses REST API queries to pull records out of a SharePoint list which has 400k records. The list has an indexed column and for the most part the values returned in the index column never exceed 5k. The front end has a drop down with the values available in the indexed field. Upon selecting a value the results are returned. This works great.

The issue I'm seeing is that it is possible that occasionally one of the indexed values will exceed the 5k limit which breaks the query if you are querying on that value. My initial thought was that if I go back into the data and reduce the count to below 5k on that index that the application would then allow me to query on that value again.

In my test case, I exceeded the 5k limit on one of the indexed values, breaking the application when I query on that value. I then removed all of the records for that indexed value in the source list, but the application still throws the SPQueryThrottleException error even though no records for that index exist. Is there a way around this? Will that indexed value be broken forever once it's exceeded?

  • Have you tried re-indexing the list through the List Settings? – NotVonKaiser Feb 5 '16 at 17:46
  • I have, but it's only been about 24 hours since i did that, so not sure if that runs on a crawl that just hasn't happened yet. Is there a default job timer that runs on that? – Nate Feb 5 '16 at 18:23

If I had ran into such an issue on SharePoint on-prem, the first thing to try would be to CA > Manage Web application > General Settings in Top ribbon > Resource throttling > Increase the value from 5K to 20K for general audience. Not sure if it works the same way with SPOnline.

Also, in general, if the query is breaking because it is expected to return more than 5K items, I would explicitly code the query to never return more than 5K items. And then, there is always the chance of implementing some variety of paging in the application or maybe running a follow-up query to get the rest of items!

  • Unfortunately I don't have access to CA. I am currently trying to work with the IT group who does. As for the queries, the REST API queries are set to return the top 4999 records. The problem as I understand it is that you can't have over 5k records in an indexed value or else SP will lock that indexed value down. Which I'm fine with, but I'd think I'd be able to reduce or delete the records out or below 5k and that SP would re-crawl the index and fix the threshold error. Hopefully my IT group can offer some insights on why this isn't happening. – Nate Feb 8 '16 at 15:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.