I have SC10 running in a multi-region setup. 1x CM and 1x CD in the UK. 1x CD and 1x IDX in the US.

The CM acts as the indexing instance for the both CM and CD in the UK. The IDX instance is a dedicated indexing instance for the US CD.

In SC8.2, if I needed to perform a full index rebuild in the US, I'd log into the Sitecore shell on the US IDX server and load the indexing manager from the control panel, and trigger the rebuild that way. In SC10, it appears that Sitecore have taken the decision to completely remove any access to the /sitecore/... urls on any CD or dedicated IDX instances. This poses a problem: how am I supposed to trigger a rebuild without the UI?

The Sitecore docs here (https://doc.sitecore.com/xp/en/developers/101/platform-administration-and-architecture/rebuild-search-indexes.html) state the following options:

  • Use the Sitecore Control Panel
  • Use custom code
  • Use the Content Editor
  • Use the CLI

There's also an extra option I've found:

  • Use RemoteRebuild strategy and trigger from the CM

Without access to the UI, I can't use Sitecore Control Panel or Content Editor. Because the core db is not shared between CM (UK) and IDX (US), I can't use RemoteRebuild strategy. Sitecore CLI seems more experimental than anything else and requires installation into the CM - the docs don't talk about it interacting with CDs or IDX instances, so I can't use that either.

Is using custom code seriously the only way I can trigger a full index rebuild?

1 Answer 1


The custom code approach implemented on a custom utility page is a valid approach, but it also requires to secure the access to this page, since it would be hosted on a Content Delivery instance. If you don't want to implement an authentication layer to protect it, you can keep it disabled (renaming the page file extension to .disabled) and manually enabling it when you need to rebuild the indexes.

Another approach that you already mentioned in your question is using the RemoteRebuild strategy, but using a separate database (shared across your regions) for the EventQueue, Properties, and Tasks tables. This official Sitecore documentation page describes how to configure Sitecore instances to use a separate dedicated database for EventQueue, Properties and Tasks tables. One important note to keep in mind with this approach is that the web application might experience decreased performance, since the dedicated shared database would be shared by all your regions.

  • This answer confirms my suspicions :( I agree the RemoteRebuild/shared eventqueue is a performance concern and therefore not a route I'm prepared to go down. It also requires you to rebuild 2 indexes simultaneously (US + UK) which may not be desirable in certain circumstances. I'm just shocked that Sitecore seem to have overlooked this use case entirely with their out-of-the-box offering. I've started going down the route of config patches to reintroduce the built-in admin pages (after all, config is how Sitecore disabled them in the first place!), but it's a minefield to say the least.
    – theyetiman
    Commented Feb 14, 2022 at 9:22
  • 1
    Yes, that route is not easy and the admin pages were disabled in publicly accessable instances for security reasons. For these reasons, we are using a disabled page that we manually enable only when needed and that checks also if the incoming ng request is performed locally on the server. We don't perform a full index rebuild often though, so this manual approach is an acceptable toil for us. Commented Feb 14, 2022 at 12:08
  • I might end up going with your approach if I can't reinstate the admin pages effectively. It's worth noting that a dedicated IDX instance is not publicly accessible - it just sits there indexing and nothing else, no public IP or anything - therefore disabling the /sitecore urls is entirely pointless.
    – theyetiman
    Commented Feb 15, 2022 at 15:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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