Page MenuHomePhabricator

Wikibase\Repo\Api\EntitySearchException:
Closed, ResolvedPublic2 Estimated Story PointsPRODUCTION ERROR

Description

Error
  • mwversion: 1.45.0-wmf.11
  • timestamp: 2025-07-29T14:36:06.314Z
  • phpversion: 8.1.33
  • reqId: 24f155ab-7fc3-4204-a149-ffd170c86f88
  • Find reqId in Logstash
normalized_message
[{reqId}] {exception_url}   Wikibase\Repo\Api\EntitySearchException:
FrameLocationCall
from/srv/mediawiki/php-1.45.0-wmf.11/extensions/WikibaseCirrusSearch/src/InLabelSearch.php(75)
#0/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/domains/search/src/Infrastructure/DataAccess/InLabelSearchEngine.php(42)Wikibase\Search\Elastic\InLabelSearch->search(string, string, string, int, int)
#1/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/domains/search/src/Application/UseCases/SimpleItemSearch/SimpleItemSearch.php(34)Wikibase\Repo\Domains\Search\Infrastructure\DataAccess\InLabelSearchEngine->searchItemByLabel(string, string, int, int)
#2/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/domains/search/src/RouteHandlers/SimpleItemSearchRouteHandler.php(55)Wikibase\Repo\Domains\Search\Application\UseCases\SimpleItemSearch\SimpleItemSearch->execute(Wikibase\Repo\Domains\Search\Application\UseCases\SimpleItemSearch\SimpleItemSearchRequest)
#3/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/domains/search/src/RouteHandlers/SimpleItemSearchRouteHandler.php(46)Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler->runUseCase()
#4/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/rest-api/src/Middleware/UserAgentCheckMiddleware.php(29)Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler->Wikibase\Repo\Domains\Search\RouteHandlers\{closure}()
#5/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/rest-api/src/Middleware/MiddlewareHandler.php(48)Wikibase\Repo\RestApi\Middleware\UserAgentCheckMiddleware->run(Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler, Closure)
#6/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/rest-api/src/Middleware/MiddlewareHandler.php(46)Wikibase\Repo\RestApi\Middleware\MiddlewareHandler->callMiddlewaresRecursively(array, Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler, Closure)
#7/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/rest-api/src/Middleware/UnexpectedErrorHandlerMiddleware.php(27)Wikibase\Repo\RestApi\Middleware\MiddlewareHandler->Wikibase\Repo\RestApi\Middleware\{closure}()
#8/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/rest-api/src/Middleware/MiddlewareHandler.php(48)Wikibase\Repo\RestApi\Middleware\UnexpectedErrorHandlerMiddleware->run(Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler, Closure)
#9/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/rest-api/src/Middleware/MiddlewareHandler.php(30)Wikibase\Repo\RestApi\Middleware\MiddlewareHandler->callMiddlewaresRecursively(array, Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler, Closure)
#10/srv/mediawiki/php-1.45.0-wmf.11/extensions/Wikibase/repo/domains/search/src/RouteHandlers/SimpleItemSearchRouteHandler.php(46)Wikibase\Repo\RestApi\Middleware\MiddlewareHandler->run(Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler, Closure)
#11/srv/mediawiki/php-1.45.0-wmf.11/includes/Rest/SimpleHandler.php(40)Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler->run()
#12/srv/mediawiki/php-1.45.0-wmf.11/includes/Rest/Module/Module.php(418)MediaWiki\Rest\SimpleHandler->execute()
#13/srv/mediawiki/php-1.45.0-wmf.11/includes/Rest/Module/Module.php(301)MediaWiki\Rest\Module\Module->executeHandler(Wikibase\Repo\Domains\Search\RouteHandlers\SimpleItemSearchRouteHandler)
#14/srv/mediawiki/php-1.45.0-wmf.11/includes/Rest/Router.php(485)MediaWiki\Rest\Module\Module->execute(string, MediaWiki\Rest\RequestFromGlobals)
#15/srv/mediawiki/php-1.45.0-wmf.11/includes/Rest/Router.php(444)MediaWiki\Rest\Router->doExecute(string, MediaWiki\Rest\RequestFromGlobals)
#16/srv/mediawiki/php-1.45.0-wmf.11/includes/Rest/EntryPoint.php(209)MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#17/srv/mediawiki/php-1.45.0-wmf.11/includes/MediaWikiEntryPoint.php(198)MediaWiki\Rest\EntryPoint->execute()
#18/srv/mediawiki/php-1.45.0-wmf.11/rest.php(39)MediaWiki\MediaWikiEntryPoint->run()
#19/srv/mediawiki/w/rest.php(3)require(string)
#20{main}
Impact
Notes

The error message seems to be missing context too

Details

Request URL
https://www.wikidata.org/w/rest.php/wikibase/v0/search/items?language=*&limit=*&q=*
Related Changes in Gerrit:

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Logstash says Search backend error during wikibase_in_label search for '{search term}' after 3: http_exception: Couldn't connect to host, Elasticsearch down?. Doesn't look like something went wrong on our end (Wikibase). Maybe just a temporary network glitch?

Likely yeah, but there were a few others are different times too

Screenshot 2025-07-31 at 16.14.09.png (377×2 px, 152 KB)

It's the eternal question of whether this exceptional behaviour that shouldn't be handled, and as such displayed to the user like this.

But also the fact that there's no apparent message at all attached Wikibase\Repo\Api\EntitySearchException: isn't good UX for people looking at logs.

pfischer set the point value for this task to 2.Aug 4 2025, 3:45 PM
dcausse subscribed.

Logstash says Search backend error during wikibase_in_label search for '{search term}' after 3: http_exception: Couldn't connect to host, Elasticsearch down?. Doesn't look like something went wrong on our end (Wikibase). Maybe just a temporary network glitch?

Search backend failures can happen and this probably should be handled gracefully. Other wikibase endpoints relying on search generally call ApiBase::dieStatus( $entitySearchException->getStatus() ), should this do something similar using and calling \MediaWiki\Rest\Handler\Helper\RestStatusTrait::throwExceptionForStatus like what's done in MW core for the Search REST endpoint?

Logstash says Search backend error during wikibase_in_label search for '{search term}' after 3: http_exception: Couldn't connect to host, Elasticsearch down?. Doesn't look like something went wrong on our end (Wikibase). Maybe just a temporary network glitch?

Search backend failures can happen and this probably should be handled gracefully. Other wikibase endpoints relying on search generally call ApiBase::dieStatus( $entitySearchException->getStatus() ), should this do something similar using and calling \MediaWiki\Rest\Handler\Helper\RestStatusTrait::throwExceptionForStatus like what's done in MW core for the Search REST endpoint?

Fair point. I'll look into it!

Change #1183093 had a related patch set uploaded (by Jakob; author: Jakob):

[mediawiki/extensions/Wikibase@master] Search: Gracefully handle search backend failures

https://gerrit.wikimedia.org/r/1183093

Change #1183093 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Search: Gracefully handle search backend failures

https://gerrit.wikimedia.org/r/1183093