SearchStax/Measured Search Solr is gone, but four D7 sites are still configured to use it
Area: solr / D7 legacy / dead external dependency / credentials / cleanup Raised during: Session 2026-08-13 (Solr index inventory across dev / staging / production) Jira: (add when available) Priority: Medium — vestigial config to remove, plus one credential to burn. Confirmed by Yuji 2026-08-13: the SearchStax / Measured Search instances are long gone. Every configuration pointing at them is therefore defunct. Nothing to migrate — this is cleanup, and one live symptom to stop.
The configuration
A third-party hosted Solr — ss395824-us-east-1-aws.measuredsearch.com (SearchStax,
formerly Measured Search) — is still wired in as an enabled search backend on four of
the six production D7 sites, and identically on their mandala-drupal-dev-1 staging
clones. It appears in no architecture doc, ADR, or migration plan in this repo.
| Site | Mechanism | Server / environment | Core | Enabled |
|---|---|---|---|---|
| Images | search_api |
ms_solr_server |
/solr/images_solrapi |
✅ |
| Texts | search_api |
solr_search ("MS Solr Server") |
/solr/texts_prod |
✅ |
| Visuals | search_api |
shiva_solr_server ("Shiva Solr Server") |
/solr/visuals |
✅ |
| AV | apachesolr |
env solr ("mediabase") |
/solr/av |
✅ |
Sources and Mandala Home have no SearchStax configuration.
It is not inert — Texts is erroring against it continuously, today
Because the servers are enabled and the indexes are not read-only, D7 cron keeps trying to reach a host that no longer exists. On mandala-texts (production), watchdog shows this firing on every cron run:
SearchApiException on index "Full Text Local Solr":
Could not index items since important pending server tasks could not be performed.
search_api_index_specific_items() — search_api.module:1787 [severity 3 / error]
Volume, measured 2026-08-13: 4,633 watchdog rows in a single 3-hour window
(11:51–14:51), of which 201 are search_api errors. This is ongoing log noise and
wasted cron work on a live production site, with a permanently undrainable queue behind
it (full_text_local_2: 7,633 tracked items, 2,170 pending, none moving since
2024-05-21).
Images could not be assessed the same way — that site's watchdog table stops dead
at 2025-05-12 (1,042 rows total, none newer), so dblog tells us nothing about its
current behaviour. Its index images_solr_index tracks 111,511 items with a 22,342
backlog; given the backend is gone, that backlog cannot drain either. Note the site's
dblog going quiet (2025-05-12) is within days of the newest Images document in
production kmassets (2025-05-22) — the Images site appears to have stopped doing much of
anything around then. Worth a look, but see the separate note on the frozen kmassets
index before drawing conclusions.
Visuals is genuinely inert — the shiva_solr_server object is enabled but no index
is bound to it (visuals_drupal_index points at the staging Solr master instead; see
the cross-environment note).
The credential must be treated as burned
A single account (solrprod) with one shared password is stored in cleartext across
at least three locations per site:
search_api_server.options— serialized PHP,http_user/http_passapachesolr_environment.url— embedded in the URL ashttps://user:pass@host/…- the
shanti_kmaps_admin_solr_passwordvariable — set on all six production sites plus staging, including the two sites with no SearchStax backend at all
The service being decommissioned does not make this safe to leave: the same password may have been reused elsewhere, and it sits in database rows readable by anything with site DB access, in a system we are still operating. Treat it as compromised and confirm it is not in use anywhere else.
What to do
- Disable and delete the four server/environment definitions and the indexes bound
to them, on production and on
dev-1. This stops the Texts cron error stream. - Purge the credential from all three storage locations on all six sites plus
staging — including
shanti_kmaps_admin_solr_passwordon the sites that never had a SearchStax backend. - Confirm the
solrprodpassword is not reused on any live service; rotate wherever it is. - Check what Images and Texts search actually do now for end users. If a site's only search backend has been dead for a year, its search is either broken or silently falling back — either way that is a fact worth knowing before D11 cutover, and it may lower the bar for what D11 search has to match on day one.
- Confirm no billing continues for the SearchStax subscription.
Why it matters beyond tidiness
The D11 rebuild's search story (ADR 014, kmassets/kmterms behind the read-only proxy) was planned without knowing this dependency existed. Now that it is known to be dead, the useful consequence is the inverse of the original worry: there is no external Solr to cut over from for Images, Texts, Visuals or AV. Whatever those sites' search does today, it is not being served by SearchStax.
Related
kmassets-production-index-frozen.md— the UVA-hosted production kmassets index has taken no writes since 2025-08-11.solr-cross-environment-write-targets.md— production Visuals writes to the staging master; D7 staging writes to the production master.- A fourth finding from the same inventory pass — an access-control issue in the legacy D7 Solr routing — is being tracked outside this repo pending review. Ask Yuji before working on production Solr endpoints.
- ADR 014 — the D11 replacement read path.