| mahmoud.abdelsattar.wmde |
| May 8 2026, 2:41 PM |
| F80301144: image.png |
| May 8 2026, 2:55 PM |
Description
When opening this page, it triggers an error .. it is possible to be affected by the patch Remove MediaHandler language fallback
Steps to replicate the issue (include links if applicable):
- Open the URL https://www.wikidata.beta.wmcloud.org/w/index.php?title=Q424242&mobileaction=toggle_view_mobile
- You should see an error preventing the page from loading properly.
Stacktrace:
[c37a7341-bcaf-4229-8615-570072034a35] /w/index.php?mobileaction=toggle_view_mobile&title=Q424242 RuntimeException: Need to set language before accessing.
Backtrace:
from /srv/mediawiki/php-master/includes/Media/MediaHandler.php(64)
#0 /srv/mediawiki/php-master/includes/Media/ImageHandler.php(350): MediaWiki\Media\MediaHandler->getLanguage()
#1 /srv/mediawiki/php-master/includes/FileRepo/File/File.php(2490): MediaWiki\Media\ImageHandler->getDimensionsString(MediaWiki\FileRepo\File\ForeignAPIFile)
#2 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/CommonsInlineImageFormatter.php(171): MediaWiki\FileRepo\File\File->getDimensionsString(MediaWiki\Languages\LanguageEn)
#3 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/CommonsInlineImageFormatter.php(155): Wikibase\Lib\Formatters\CommonsInlineImageFormatter->getFileMetaHtml(MediaWiki\FileRepo\File\ForeignAPIFile)
#4 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/CommonsInlineImageFormatter.php(118): Wikibase\Lib\Formatters\CommonsInlineImageFormatter->getCaptionHtml(MediaWiki\Title\Title, MediaWiki\FileRepo\File\ForeignAPIFile)
#5 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/DispatchingValueFormatter.php(72): Wikibase\Lib\Formatters\CommonsInlineImageFormatter->format(DataValues\StringValue)
#6 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/PropertyValueSnakFormatter.php(148): Wikibase\Lib\Formatters\DispatchingValueFormatter->formatValue(DataValues\StringValue, string)
#7 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/PropertyValueSnakFormatter.php(117): Wikibase\Lib\Formatters\PropertyValueSnakFormatter->formatValue(DataValues\StringValue, string)
#8 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/DispatchingSnakFormatter.php(150): Wikibase\Lib\Formatters\PropertyValueSnakFormatter->formatSnak(Wikibase\DataModel\Snak\PropertyValueSnak)
#9 /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Formatters/ErrorHandlingSnakFormatter.php(65): Wikibase\Lib\Formatters\DispatchingSnakFormatter->formatSnak(Wikibase\DataModel\Snak\PropertyValueSnak)
#10 /srv/mediawiki/php-master/extensions/Wikibase/view/src/VueNoScriptRendering.php(271): Wikibase\Lib\Formatters\ErrorHandlingSnakFormatter->formatSnak(Wikibase\DataModel\Snak\PropertyValueSnak)
#11 /srv/mediawiki/php-master/extensions/Wikibase/view/src/VueNoScriptRendering.php(320): Wikibase\View\VueNoScriptRendering->populateReferenceSnakValueHtml(Wikibase\DataModel\Statement\Statement, array)
#12 /srv/mediawiki/php-master/extensions/Wikibase/view/src/StatementSectionsView.php(80): Wikibase\View\VueNoScriptRendering->renderStatementsSectionHtml(string, string, string, Wikibase\DataModel\Statement\StatementList)
#13 /srv/mediawiki/php-master/extensions/Wikibase/view/src/StatementSectionsView.php(99): Wikibase\View\StatementSectionsView->getVueStatementSectionsHtml(Wikibase\DataModel\Statement\StatementList, array, string)
#14 /srv/mediawiki/php-master/extensions/Wikibase/view/src/StatementSectionsView.php(138): Wikibase\View\StatementSectionsView->getVueStatementsHtml(Wikibase\DataModel\Entity\ItemId, Wikibase\DataModel\Statement\StatementList, array)
#15 /srv/mediawiki/php-master/extensions/Wikibase/view/src/ItemView.php(125): Wikibase\View\StatementSectionsView->getHtml(Wikibase\DataModel\Statement\StatementList, Wikibase\DataModel\Entity\ItemId, bool)
#16 /srv/mediawiki/php-master/extensions/Wikibase/view/src/EntityView.php(68): Wikibase\View\ItemView->getMainHtml(Wikibase\DataModel\Entity\Item)
#17 /srv/mediawiki/php-master/extensions/Wikibase/view/src/ItemView.php(105): Wikibase\View\EntityView->renderEntityView(Wikibase\DataModel\Entity\Item)
#18 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/ParserOutput/FullEntityParserOutputGenerator.php(170): Wikibase\View\ItemView->getContent(Wikibase\DataModel\Entity\Item, int)
#19 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/ParserOutput/FullEntityParserOutputGenerator.php(114): Wikibase\Repo\ParserOutput\FullEntityParserOutputGenerator->addHtmlToParserOutput(MediaWiki\Parser\ParserOutput, Wikibase\Lib\Store\EntityRevision, Wikibase\View\ItemView)
#20 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/ParserOutput/StatslibTimeRecordingEntityParserOutputGenerator.php(66): Wikibase\Repo\ParserOutput\FullEntityParserOutputGenerator->getParserOutput(Wikibase\Lib\Store\EntityRevision, bool)
#21 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/Content/EntityHandler.php(859): Wikibase\Repo\ParserOutput\StatslibTimeRecordingEntityParserOutputGenerator->getParserOutput(Wikibase\Lib\Store\EntityRevision, bool)
#22 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/Content/ItemHandler.php(301): Wikibase\Repo\Content\EntityHandler->getParserOutputFromEntityView(Wikibase\Repo\Content\ItemContent, int, MediaWiki\Parser\ParserOptions, bool)
#23 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/Content/EntityHandler.php(789): Wikibase\Repo\Content\ItemHandler->getParserOutputFromEntityView(Wikibase\Repo\Content\ItemContent, int, MediaWiki\Parser\ParserOptions, bool)
#24 /srv/mediawiki/php-master/includes/Content/ContentHandler.php(1574): Wikibase\Repo\Content\EntityHandler->fillParserOutput(Wikibase\Repo\Content\ItemContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#25 /srv/mediawiki/php-master/includes/Content/Renderer/ContentRenderer.php(62): MediaWiki\Content\ContentHandler->getParserOutput(Wikibase\Repo\Content\ItemContent, MediaWiki\Content\Renderer\ContentParseParams)
#26 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(246): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(Wikibase\Repo\Content\ItemContent, MediaWiki\Page\PageIdentityValue, MediaWiki\Revision\RevisionStoreCacheRecord, MediaWiki\Parser\ParserOptions, array)
#27 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(219): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(Wikibase\Repo\Content\ItemContent, array)
#28 /srv/mediawiki/php-master/includes/Revision/RevisionRenderer.php(226): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#29 /srv/mediawiki/php-master/includes/Revision/RevisionRenderer.php(159): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, MediaWiki\Parser\ParserOptions, array)
#30 /srv/mediawiki/php-master/includes/Revision/RenderedRevision.php(182): MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#31 /srv/mediawiki/php-master/includes/Page/ParserOutputAccess.php(593): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#32 /srv/mediawiki/php-master/includes/Page/ParserOutputAccess.php(684): MediaWiki\Page\ParserOutputAccess->renderRevision(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, array)
#33 /srv/mediawiki/php-master/includes/PoolCounter/PoolCounterWorkViaCallback.php(68): MediaWiki\Page\ParserOutputAccess->MediaWiki\Page\{closure}()
#34 /srv/mediawiki/php-master/includes/PoolCounter/PoolCounterWork.php(159): MediaWiki\PoolCounter\PoolCounterWorkViaCallback->doWork()
#35 /srv/mediawiki/php-master/includes/Page/ParserOutputAccess.php(498): MediaWiki\PoolCounter\PoolCounterWork->execute()
#36 /srv/mediawiki/php-master/includes/Page/Article.php(882): MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, array)
#37 /srv/mediawiki/php-master/includes/Page/Article.php(543): MediaWiki\Page\Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#38 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/Actions/ViewEntityAction.php(53): MediaWiki\Page\Article->view()
#39 /srv/mediawiki/php-master/extensions/Wikibase/repo/includes/Actions/ViewEntityAction.php(28): Wikibase\Repo\Actions\ViewEntityAction->showEntityPage()
#40 /srv/mediawiki/php-master/includes/Actions/ActionEntryPoint.php(753): Wikibase\Repo\Actions\ViewEntityAction->show()
#41 /srv/mediawiki/php-master/includes/Actions/ActionEntryPoint.php(511): MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#42 /srv/mediawiki/php-master/includes/Actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest()
#43 /srv/mediawiki/php-master/includes/MediaWikiEntryPoint.php(180): MediaWiki\Actions\ActionEntryPoint->execute()
#44 /srv/mediawiki/php-master/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#45 /srv/mediawiki/w/index.php(3): require(string)
#46 {main}What happens?:
What should have happened instead?:
Software version (on page; skip for WMF-hosted wikis like Wikipedia):
| Product | Version |
|---|---|
| MediaWiki | 1.47.0-alpha (49dd1c5) 07:31, 8 May 2026 |
| PHP | 8.3.30 (fpm-fcgi) |
| ICU | 67.1 |
| MariaDB | 10.6.17-MariaDB-log |
| wikidiff2 | 1.14.1 |
| Pygments | 2.19.2 |
| LilyPond | 2.22.0 |
| OpenSearch | 1.3.20 |
| LuaSandbox | 4.1.2 |
| Lua | 5.1.5 |
Details
Related Objects
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Resolved | Release | Aklapper | T423911 1.47.0-wmf.2 deployment blockers | ||
| Resolved | BUG REPORT | None | T425782 [Core][BUG] Need to set language before accessing |
- Mentioned In
- T425740: File:[filename] throws "RuntimeException: Need to set language before accessing."
T425988: Deprecated: Accessing the language without explicitly setting it via MediaHandler:setLanguage, MediaHandler::getHandler, or MediaHandlerFactory::getHandler - Mentioned Here
- T425988: Deprecated: Accessing the language without explicitly setting it via MediaHandler:setLanguage, MediaHandler::getHandler, or MediaHandlerFactory::getHandler
T425740: File:[filename] throws "RuntimeException: Need to set language before accessing."
rMW49dd1c5aa896: Localisation updates from https://translatewiki.net.
Event Timeline
Merged on Tuesday, so the parent task can probably removed as it's not blocking this week's train
Strangely, I haven’t found any occurrences of the hard deprecation in Logstash so far (I checked mediawiki-deprecated and mediawiki-errors); the patch adding the hard deprecation was included in 1.46.0-wmf.26, so it should have been deployed…
No, that’s the error, not the deprecation warning 🤦️
I think this is a bug in MediaWiki core, not Wikibase… already passes a language into :
private function getFileMetaHtml( File $file ) { return $this->language->semicolonList( [ htmlspecialchars( $file->getDimensionsString( $this->language ) ), htmlspecialchars( $this->language->formatSize( $file->getSize() ) ), ] ); }
(AFAICT, it’s not possible for to be ; it must be a instance.) But somewhere between , , and , that language gets lost, and then throws an error about the language being missing. ( takes a language parameter, but the cache only uses the as the key? The language is only used when a new handler is being created, but then the same handler is reused later regardless of which language it was originally created with (if any) and which language is now being requested?)
I think this suits to having been caused by 1250615: Inject language into MediaHandlers rather than relying on wgLang, which ensured the error was reached from all codepaths.
See also T425740: File:[filename] throws "RuntimeException: Need to set language before accessing.".
This is likely the same language caching bug, given that CommonsInlineImageFormatter calls File::transform, which again calls File::getHandler without a language:
https://gerrit.wikimedia.org/g/mediawiki/core/+/master/includes/FileRepo/File/File.php#1273
So my patch in the other issue should fix this bug as well.
From a quick look at that patch, I agree that it’s likely to fix this task; but I also think the patch might need more work (I have the same concern that you pointed out in this comment – that it feels brittle to modify the language of existing handlers).
Change #1284897 had a related patch set uploaded (by MGChecker; author: MGChecker):
[mediawiki/core@master] Fix MediaHandler caching to not preserve language
Change #1285834 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@master] Revert "Remove MediaHandler language fallback"
Change #1285834 merged by jenkins-bot:
[mediawiki/core@master] Revert "Remove MediaHandler language fallback"
The revert resolves the exception, now there is a a deprecation instead. I filed a separate task for it: T425988 (@MGChecker's patch can probably be repurposed for that one).
Change #1284897 merged by jenkins-bot:
[mediawiki/core@master] Fix MediaHandler caching to not preserve language
Change #1286464 had a related patch set uploaded (by Jforrester; author: MGChecker):
[mediawiki/core@wmf/1.47.0-wmf.2] Fix MediaHandler caching to not preserve language
Change #1286465 had a related patch set uploaded (by Jforrester; author: MGChecker):
[mediawiki/core@wmf/1.47.0-wmf.1] Fix MediaHandler caching to not preserve language
Change #1286464 merged by jenkins-bot:
[mediawiki/core@wmf/1.47.0-wmf.2] Fix MediaHandler caching to not preserve language
Mentioned in SAL (#wikimedia-operations) [2026-05-12T19:27:38Z] <dancy@deploy1003> Started scap sync-world: Backport for [[gerrit:1286464|Fix MediaHandler caching to not preserve language (T425988 T425740 T425782)]]
Mentioned in SAL (#wikimedia-operations) [2026-05-12T19:30:04Z] <dancy@deploy1003> jforrester, dancy: Backport for [[gerrit:1286464|Fix MediaHandler caching to not preserve language (T425988 T425740 T425782)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.
Mentioned in SAL (#wikimedia-operations) [2026-05-12T19:34:45Z] <dancy@deploy1003> Finished scap sync-world: Backport for [[gerrit:1286464|Fix MediaHandler caching to not preserve language (T425988 T425740 T425782)]] (duration: 07m 07s)
Change #1286465 abandoned by Hashar:
[mediawiki/core@wmf/1.47.0-wmf.1] Fix MediaHandler caching to not preserve language
Reason:
Abandoning per previous comment. The reason is the change targets 1.47.0-wmf.1 which is no more live in production (we are at wmf.4).
