Drupal - Can not get additional data from Solr timeout after...

Errors

The Problem

Your Drupal site shows this warning:

Solr was unable to retrieve additional data about the server.

And in your logs you see cURL error 28 — a timeout while Drupal tries to reach /admin/luke on your Solr server.


What Is Actually Happening

Drupal's search_api_solr module periodically calls Solr's /admin/luke endpoint to discover what fields exist in the index, check capabilities, and verify the server is healthy. The Luke handler is like asking Solr to give you a complete X-ray of the entire index — every field, every term count, everything.

On large indexes, this response can be megabytes of data and take several seconds to generate. If it takes longer than Drupal's PHP timeout, the request fails.

WHY /admin/luke CAUSES TIMEOUTSDrupalasks /admin/lukeLuke HandlerScans ENTIRE index...fields, terms, stats...10+ secondstoo slow!TIMEOUTcURL error 28The Fix: Replace Luke with a fast Ping handlerDrupalasks /admin/lukePing HandlerJust says "I am OK!"200 OKinstant!


The Fix

Replace Solr's heavy Luke handler with a lightweight Ping handler at the same URL. Drupal only needs a "yes, I am alive" response — it does not actually need the full Luke data dump.

Add this to your solrconfig.xml:

<requestHandler name="/admin/luke" class="solr.PingRequestHandler">
  <lst name="defaults">
    <str name="q">*:*</str>
  </lst>
</requestHandler>

Step-by-Step for Opensolr Users

  1. Log in to your Opensolr Dashboard
  2. Open your Index Settings for the affected Opensolr Index
  3. Go to Config Files Editor and edit solrconfig.xml
  4. Find any existing /admin/luke request handler block and replace it with the snippet above
  5. Save your changes — Opensolr reloads the config automatically

Verify It Works

curl -sS -u user:pass -w '%{http_code}\n' \
  "https://your-cluster.opensolr.com/solr/your_core/admin/luke?wt=json"

You should get an instant 200 response with a small JSON payload.


Alternative: Skip Schema Check in Drupal

If you cannot modify Solr configs, you can tell Drupal to stop calling Luke entirely:

// settings.php
$settings['search_api_solr']['skip_schema_check'] = TRUE;
$settings['search_api_solr']['timeout'] = 3;
$settings['search_api_solr']['connect_timeout'] = 1;

This disables schema introspection. Search and indexing continue to work normally.


Trade-offs

Approach Pros Cons
Replace Luke with Ping (recommended) Instant response, Drupal is happy Luke introspection disabled at that URL
Skip schema check in Drupal No Solr config changes needed Drupal cannot detect schema mismatches
Increase PHP timeout No changes to Solr or Drupal Still slow, just delays the problem

Quick Checklist

  • Replace /admin/luke handler with PingRequestHandler in solrconfig.xml
  • Save and let Opensolr reload the config
  • Verify with a quick cURL call that /admin/luke responds instantly
  • Optionally clear Drupal caches with drush cr
  • If you cannot edit Solr configs, use skip_schema_check in Drupal settings.php

Need help fixing Drupal timeouts? Reach out to us at support@opensolr.com — we can adjust your Solr config directly.