Page MenuHomePhabricator

Argument 1 passed to LanguageConverterFactory::getLanguageConverter() must be an instance of Language or null, instance of StubUserLang
Closed, DuplicatePublicPRODUCTION ERROR

Description

[2020-02-07 13:27:35] exception.ERROR: [39aabe68e245799065f8968e] /w/api.php   TypeError from line 78 of /srv/mediawiki/tags/2020-02-05_15:38:56/languages/LanguageConverterFactory.php: Argument 1 passed to MediaWiki\Languages\LanguageConverterFactory::getLanguageConverter() must be an instance of Language or null, instance of StubUserLang given, called in /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/Parser.php on line 1534 

{"exception":"[object] (TypeError(code: 0): Argument 1 passed to MediaWiki\\Languages\\LanguageConverterFactory::getLanguageConverter() must be an instance of Language or null, instance of StubUserLang given, called in /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/Parser.php on line 1534 at /srv/mediawiki/tags/2020-02-05_15:38:56/languages/LanguageConverterFactory.php:78)

Details

Request URL
/w/api.php - ApiTranslationCheck->execute()
Stack Trace
#0 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/Parser.php(1534): MediaWiki\\Languages\\LanguageConverterFactory->getLanguageConverter(Object(StubUserLang))
#1 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/Parser.php(3351): Parser->getTargetLanguageConverter()
#2 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/PPFrame_Hash.php(253): Parser->braceSubstitution(Array, Object(PPFrame_Hash))
#3 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/Parser.php(3144): PPFrame_Hash->expand(Object(PPNode_Hash_Tree), 0)
#4 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/parser/Parser.php(877): Parser->replaceVariables('{{WBREPONAME}} ...', Object(PPFrame_Hash))
#5 /srv/mediawiki/tags/2020-02-05_15:38:56/extensions/Translate/MediaWikiMessageChecker.php(269): Parser->preprocess('{{WBREPONAME}} ...', NULL, Object(ParserOptions))
#6 /srv/mediawiki/tags/2020-02-05_15:38:56/extensions/Translate/MediaWikiMessageChecker.php(190): MediaWikiMessageChecker::getPluralForms('{{WBREPONAME}} ...')
#7 /srv/mediawiki/tags/2020-02-05_15:38:56/extensions/Translate/MessageChecks.php(131): MediaWikiMessageChecker->pluralFormsCheck(Array, 'he', Array)
#8 /srv/mediawiki/tags/2020-02-05_15:38:56/extensions/Translate/api/ApiTranslationCheck.php(76): MessageChecker->checkMessage(Object(FatMessage), 'he')
#9 /srv/mediawiki/tags/2020-02-05_15:38:56/extensions/Translate/api/ApiTranslationCheck.php(19): ApiTranslationCheck->getWarnings(Object(MessageHandle), '{{WBREPONAME}} ...')
#10 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/api/ApiMain.php(1617): ApiTranslationCheck->execute()
#11 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/api/ApiMain.php(553): ApiMain->executeAction()
#12 /srv/mediawiki/tags/2020-02-05_15:38:56/includes/api/ApiMain.php(524): ApiMain->executeActionWithErrorHandling()
#13 /srv/mediawiki/tags/2020-02-05_15:38:56/api.php(83): ApiMain->execute()
#14 {main}

Event Timeline

abi_ renamed this task from Argument 1 passed to \LanguageConverterFactory::getLanguageConverter() must be an instance of Language or null, instance of StubUserLang to Argument 1 passed to LanguageConverterFactory::getLanguageConverter() must be an instance of Language or null, instance of StubUserLang.Feb 7 2020, 2:08 PM

Problematic code,

<?php
// Setup things needed for preprocess
$title = null;
$options = new ParserOptions( new User(), Language::factory( 'en' ) );

$parser->preprocess( $translation, $title, $options );

Source: https://github.com/wikimedia/mediawiki-extensions-Translate/blob/55a7384a94969a039d8502caa844b2cd308c6c96/MediaWikiMessageChecker.php#L266-L269

Possibly related: T226833: Introduce LanguageConverterFactory service

Gerrit patch: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/564789

From release notes:

Language::factory() and Language::getParentLanguage() are deprecated, and so
is directly calling the Language constructor. Use the new LanguageFactory
class instead.
Anomie subscribed.

You don't specify which version of MediaWiki you were using, but your paths contain "2020-02-05_15:38:56" (no timezone indicated). I'm guessing that that was before rMWed18dba8f403: language: remove Language hints for type check as it breaks using of… was merged at about 2020-02-05 16:40:17 UTC.