Visiting /w/rest.php/
{ "message": "Error: exception of type Error: Class \"Wikibase\\Client\\WikibaseClient\" not found", "exception": { "id": "685519f1e3ffd7e668ab1193", "type": "Error", "file": "/var/www/wiki/mediawiki/extensions/Math/ServiceWiring.php", "line": 48, "message": "Class \"Wikibase\\Client\\WikibaseClient\" not found", "code": 0, "url": "/w/rest.php/", "caught_by": "other", "backtrace": [ { "file": "/var/www/wiki/mediawiki/core/vendor/wikimedia/services/src/ServiceContainer.php", "line": 445, "function": "{closure}", "class": "Wikimedia\\Services\\ServiceContainer", "type": "::" }, { "file": "/var/www/wiki/mediawiki/core/vendor/wikimedia/services/src/ServiceContainer.php", "line": 411, "function": "createService", "class": "Wikimedia\\Services\\ServiceContainer", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/MediaWikiServices.php", "line": 356, "function": "getService", "class": "Wikimedia\\Services\\ServiceContainer", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/vendor/wikimedia/services/src/ServiceContainer.php", "line": 419, "function": "getService", "class": "MediaWiki\\MediaWikiServices", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/vendor/wikimedia/object-factory/src/ObjectFactory.php", "line": 204, "function": "get", "class": "Wikimedia\\Services\\ServiceContainer", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/vendor/wikimedia/object-factory/src/ObjectFactory.php", "line": 149, "function": "getObjectFromSpec", "class": "Wikimedia\\ObjectFactory\\ObjectFactory", "type": "::" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/Router.php", "line": 532, "function": "createObject", "class": "Wikimedia\\ObjectFactory\\ObjectFactory", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/Handler/RootSpecHandler.php", "line": 97, "function": "instantiateHandlerObject", "class": "MediaWiki\\Rest\\Router", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/Handler/RootSpecHandler.php", "line": 89, "function": "getRouteSpec", "class": "MediaWiki\\Rest\\Handler\\RootSpecHandler", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/Handler/RootSpecHandler.php", "line": 45, "function": "getPathsSpec", "class": "MediaWiki\\Rest\\Handler\\RootSpecHandler", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/SimpleHandler.php", "line": 40, "function": "run", "class": "MediaWiki\\Rest\\Handler\\RootSpecHandler", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/Router.php", "line": 565, "function": "execute", "class": "MediaWiki\\Rest\\SimpleHandler", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/Router.php", "line": 455, "function": "executeHandler", "class": "MediaWiki\\Rest\\Router", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/Rest/EntryPoint.php", "line": 216, "function": "execute", "class": "MediaWiki\\Rest\\Router", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/includes/MediaWikiEntryPoint.php", "line": 199, "function": "execute", "class": "MediaWiki\\Rest\\EntryPoint", "type": "->" }, { "file": "/var/www/wiki/mediawiki/core/rest.php", "line": 38, "function": "run", "class": "MediaWiki\\MediaWikiEntryPoint", "type": "->" } ] }, "httpCode": 500, "httpReason": "Internal Server Error" }
I'm guessing due to:
"RestRoutes": [ { "path": "/math/v0/popup/html/{qid}", "method": "GET", "class": "MediaWiki\\Extension\\Math\\Rest\\Popup", "services": [ "Math.WikibaseConnector", "LanguageFactory", "LanguageNameUtils", "TitleFactory" ] } ],
And then instantiating the Math.WikibaseConnector service:
'Math.WikibaseConnector' => static function ( MediaWikiServices $services ): MathWikibaseConnector { return new MathWikibaseConnector( new ServiceOptions( MathWikibaseConnector::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ), WikibaseClient::getRepoLinker( $services ), $services->getLanguageFactory(), $services->getLanguageNameUtils(), WikibaseClient::getEntityRevisionLookup( $services ), WikibaseClient::getFallbackLabelDescriptionLookupFactory( $services ), WikibaseClient::getSite( $services ), WikibaseClient::getEntityIdParser( $services ), new MathFormatter( SnakFormatter::FORMAT_HTML ), LoggerFactory::getInstance( 'Math' ) ); }
There is seemingly no way to gracefully abort creating the service (if the extension registry said WikibaseClient wasn't loaded for example), that would allow things to otherwise continue.
Should this only be enabled conditionally?