Magnus Rahl
Feb 21, 2011
visibility 4199
star star star star star
(1 votes)

Search Service problem for users with many groups

The new EPiServer Full Text Search is fully integrated into the RelatePlus package. All content created is added to the search index, including the content’s access rights. That means access control filtering can be done by the indexing service before returning search result. Very convenient for paging of results etc. when you know you can display all the results returned.

Unexpected limitations

Suddenly some of our users didn’t get any search results back. Digging in the log showed several errors and after repeating the queries I could see that they returned 404 not found even though other queries worked perfectly.

After further troubleshooting it was evident that it was the length of the query (which is passed to the REST service in the query string) that was the culprit. Since the user’s groups are passed to the indexing service, a user with many groups performing a search will result in a very long query string.

Since, at least in the RelatePlus standard templates, users are added to a new group for each Club they join the query can grow large very fast.  If you have built your community based on the RelatePlus templates you could have users who are unable to perform searches.

Solution

ASP.NET has a setting for the maximum allowed length of the QueryString (note that this is a server to server call, so no browsers are involved, but they also have limitations). This is set in the configuration / system.webServer / security / requestFiltering / requestLimits elements in the maxQueryString attribute. There is also a maxUrl attribute but they are independent (maxUrl is everything up to the query, but not including it). De default value for maxQueryString if it is not set is 2048, which was the limit my users’ queries hit. I simply increased this value like so:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="16384" />
    </requestFiltering>
  </security>
</system.webServer>
Feb 21, 2011

Comments

per
per Nov 23, 2011 05:38 PM

And if you are running ASP.NET 4 you also need to set the new maxQueryStringLength on the httpRuntime element.

error Please login to comment.
Latest blogs
Add more scheduled job settings from the Optimizely CMS 12 admin UI -- with OptiScheduledJob.ExtraParameters

  Optimizely (EPiServer) CMS 12 ships a great scheduled-jobs framework, but it has one frustrating gap: a job has nowhere to store its own...

Binh Nguyen Thi | Jun 25, 2026

Automated Search & Navigation to Graph Migration with Claude Code

A Claude Code plugin that scans your S&N codebase, applies Graph SDK transformations, and validates the result. Install once, run one command. CMS ...

Connor Fortin | Jun 24, 2026

Migrating from Find to Graph: Lessons Learned from a Real CMS 13 Project

While migrating a search solution from Optimizely Search & Navigation (Find) to Optimizely Graph in CMS 13, I encountered several issues that were...

Binh Nguyen Thi | Jun 24, 2026

Optimizely: Upgrade Opti-ID and .NET 10 in CMS 12

Many Optimizely customers are planning their roadmap around a future migration to Optimizely CMS 13. As a result, upgrades such as Opti ID adoption...

Madhu | Jun 23, 2026 |

Understanding Optimizely Graph: Caching, Webhooks & Avoiding Stale Content (Optimizely SaaS CMS)

📌 Scope: This post covers Optimizely CMS (SaaS) only — using the official @optimizely/cms-sdk and @optimizely/cms-cli packages with Next.js 15. If...

Kiran Patil | Jun 23, 2026 |

Optimizely Content APIs: the Setup the Docs Don't Walk You Through

CMS 13 is pushing things firmly in the direction of Optimizely Graph, but plenty of teams are still running on older CMS versions, or have good...

Andre | Jun 22, 2026