Skip to main content

Sitecore SearchStax Component showing different results on every page refresh issue, troubleshooting, solution

Hi Fellas,

In today's blog post I will share a scenario which will help you also in your implementation, what is important here is to understand the issue when it is produced.

Generally, it is always puzzling why certain components show different results on different page refresh, and because my team members also spent same amount of time on both of the different scenarios and hence, I thought to get this article out, I will explain those two scenarios and also provide solution at the end, Though solution is easy and available on lot of sites but important here is finding out what is the issue and what are the steps to identify it, so in this blog post my focus is to show you the steps of identification rather than solution.

Scenario

Here are those two scenarios

Sccenario-1

On a home page we have a Sitecore component, which has a custom resolver, and that resolver basically reads from solr index and hits the query and returns the JSON result, and that is being read in JSS component, now every page refresh it was showing different results.

Scenario-2

Another puzzling scenario was, when our QA raised our video feed component is showing feeds in alternate refresh, because we had scenario-1 already happened where we spent good amount of time, so solving scneario-2 was not hard but because same code returns different results from index makes you puzzle and that is where I mentioned, Understanding the process before solving is interesting.

Troubleshooting

Well because it is a SOLR query which is returning different results, so we knew something is wrong there, and we are using SearchStax so we have multiple replicas of one index, we straight away checked the replicas we found following 


Now, it is clear that some documents are missing from index replicas and clearly replicas are out of sync as one of the replicas is showing less documents

So, what happens is depending on page refresh sometimes it returns data from on replica and another page refresh it returns data from another replica and because there are docs missing, it is not able to return any results and hence the miss match.

Now, to further troubleshoot and know if our specific documents which our component is trying to fetch data for, we took the query from Sitecore log and there is a way to fire that query in individual replicas, that means if our theory is correct, those queries against three replicas should return different results.

There is a good documentation available on Identical Queries Produce Inconsistent Results - SearchStax Help Center  and we followed that

Basically, we had three replicas so in three different browser tab we hit following queries 

1) https://<<Our cloud solr instance URL>>/solr/sitecore_web_index_shard1_replica_n1/select?q=<<solr query which we found in log for that component>>

2) https://<<Our cloud solr instance URL>>/solr/sitecore_web_index_shard1_replica_n2/select?q=<<solr query which we found in log for that component>>

3) https://<<Our cloud solr instance URL>>/solr/sitecore_web_index_shard1_replica_n4/select?q=<<solr query which we found in log for that component>>

You see those replica names those you can get from going into collection and then shard like below 


and all three tabs revealed inconsistent results as shown below

 

Hence it was proved that what is the issue and how to sync these replicas? So all data was published the issue was that somehow all replicas are not in sync

and because we are using searchstax, we asked them to do a Rolling Restart

As I said in this article, instead of the solution, the process of identifying is little important here because that is where maximum time goes, so next time when you land into this kind of scenario, you know what steps to perform to identify the issue :) 


Comments

Popular posts from this blog

An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

You have noticed many times that everything was working fine and suddenly the below error starts coming and you find no way to work it out An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details. The reason for this is the receiving size of WCF service is smaller then the data which is coming from service It was working before because it was small,So you will have to try to increase the receiving setting in your end point,Possible settings can be following maxStringContentLength="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxArrayLength="2147483647" That would definately help you!!!

Set up leprechaun code generation with Sitecore XM Cloud Starterkit

Hi Sitecorians, It has been amazing learning year so far and with the change in technology and shift of the focus on frontend frameworks and composable products, it has been market demand to keep learning and exploring new things. Reasons behind this blog Today's topic is something that was in my draft from April-May, and I always thought that there is already a good documentation out there for  Leprechaun  and a blog post is not needed, Until I realized that there was so many of us facing same kind of issues and same kind of problems and spending same amount of time, That is where I thought, if I could write something which can reduce that repetitive troubleshooting time, That would really help the community. 1)  In a project environment, if we get into some configuration issues, we resolve them, we make sure we are not blocked and continue, but if you think same issue, same step and same scenario will come to other people, so if we can draft it online, it will help othe...

Sitecore Stream - Configure AI capabilities into Sitecore XP using Stream Platform DxP package

Hi Folks, Recently, I delivered a webinar on "Do more in era of less with AI capabilities, Ideation to execution with Sitecore Stream" and I also have a blog around the same which you can read here on  Sitecore Stream - Do more in era of less with AI capabilities, Ideation to execution The purpose of the webinar session and above blog is to first set the tone for reader and audience to understand what Sitecore Stream is and how it operates and what values it can bring in, if possible, I will share the slides too so you can go through it. That session and the blog above were more from how Sitecore Stream is solving marketer's challenges Today, I will be showing you how you can configure the power of stream and its Brand Aware AI capabilities right into your on-prem XP, Why XP is because all other SaaS based (Cloud based) DxP products like XMC, Search, CH already has the power of Stream, So I will show you the steps of configuring Stream into on-prem XP version. Prerequisit...