Page MenuHomePhabricator

Parsoid displays first used template as page title (instead of page title)
Closed, ResolvedPublic

Description

A few examples where I get different results for the title depending on if I'm on Parsoid or Legacy Parser:

In both cases, Legacy Parser gives me the expected page title (based on the URL) while Parsoid gives me "Template:Wikimedia engineering project information".

Event Timeline

ssastry triaged this task as High priority.Jun 26 2026, 4:24 PM
ssastry subscribed.

"?action=purge" does not fix it. This is a regression. Same problem with https://www.mediawiki.org/wiki/Content_Transform_Team

I think the translate extension is getting confused, since https://www.mediawiki.org/wiki/Content_Transform_Team/de contains the correct (translated) name while https://www.mediawiki.org/wiki/Content_Transform_Team/es does not.

Since T429624 we pass the "proper" page title in the frame we provide to extension tags (the title of the page the extension tag is found on, not the top-level page), but it's possible the Parsoid implementation of Translate is buggy and assumed the old incorrect frame title. (It could get the top level title from the PageConfig if that's what it wants.) I'll take a look.

Ok, the title is a translatble part of the page, when the translate extension is installed, and the translation is done by a pseudo-section in the translations called "Page display title". You can edit the translation like: https://www.mediawiki.org/w/index.php?title=Special%3ATranslate&group=page-Content+Transform+Team&action=page&filter=&action_source=translate_page&language=es
and the bug is coming up when the title has *not* been explicitly translated, and so translate is attempting to fall back to the "real" page title -- instead of just not setting displaytitle in the first place, which is probably what it *should* do when no translation exists.

Setting the display title happens in PageTranslation\Hooks::renderTagPage(), which is invoked from ParserBeforeInternalParse on the legacy parser, which is invoked from Parser::internalParse(), which itself is invoked from ::parse() and ::recursiveTagParse(). Neither of these methods is called *at top level* by Parsoid. *However*....

I'm having trouble reproducing this locally, but from the excimer trace I can see the following 3 call stacks where renderTagPage is called (and thus the display title could be modified).

The first:

MediaWiki\Extension\Translate\PageTranslation\Hooks::renderTagPage (/srv/mediawiki/php-1.47.0-wmf.8/extensions/Translate/src/PageTranslation/Hooks.php)
> MediaWiki\HookContainer\HookContainer::run (/srv/mediawiki/php-1.47.0-wmf.8/includes/HookContainer/HookContainer.php)
> MediaWiki\HookContainer\HookRunner::onParserBeforeInternalParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/HookContainer/HookRunner.php)
> MediaWiki\Parser\Parser::internalParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parser::recursiveTagParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parser::parseExtensionTagAsTopLevelDoc (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parsoid\Config\DataAccess::parseWikitextWithTitle (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/Config/DataAccess.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::parseToHTML (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler::onExtension (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler::onTag (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\XMLTagBasedHandler::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/XMLTagBasedHandler.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunk (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunkily (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parseChunkily (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php)
> Wikimedia\Parsoid\Wikitext\ContentModelHandler::toDOM (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php)
> Wikimedia\Parsoid\Parsoid::parseWikitext (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php)
> Wikimedia\Parsoid\Parsoid::wikitext2html (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php)
> MediaWiki\Parser\Parsoid\ParsoidParser::genParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/ParsoidParser.php)
> MediaWiki\Parser\Parsoid\ParsoidParser::parse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/ParsoidParser.php)
> MediaWiki\Content\WikitextContentHandler::fillParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/WikitextContentHandler.php)
> MediaWiki\Content\ContentHandler::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/ContentHandler.php)
> MediaWiki\Content\Renderer\ContentRenderer::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/Renderer/ContentRenderer.php)
> MediaWiki\Revision\RenderedRevision::getSlotParserOutputUncached (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Revision\RenderedRevision::getSlotParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Revision\RevisionRenderer::combineSlotOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php)
> {closure:/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php(157)} (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php)
> MediaWiki\Revision\RenderedRevision::getRevisionParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Page\ParserOutputAccess::renderRevision (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\ParserOutputAccess::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\ParserOutputAccess::renderRevision (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> {closure:/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php(684)} (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\PoolCounter\PoolCounterWorkViaCallback::doWork (/srv/mediawiki/php-1.47.0-wmf.8/includes/PoolCounter/PoolCounterWorkViaCallback.php)
> MediaWiki\PoolCounter\PoolCounterWork::execute (/srv/mediawiki/php-1.47.0-wmf.8/includes/PoolCounter/PoolCounterWork.php)
> MediaWiki\Page\ParserOutputAccess::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\Article::generateContentOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/Article.php)
> MediaWiki\Page\Article::view (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/Article.php)
> MediaWiki\Actions\ViewAction::show (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ViewAction.php)
> MediaWiki\Actions\ActionEntryPoint::performAction (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\Actions\ActionEntryPoint::performRequest (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\Actions\ActionEntryPoint::execute (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\MediaWikiEntryPoint::run (/srv/mediawiki/php-1.47.0-wmf.8/includes/MediaWikiEntryPoint.php)
> /srv/mediawiki/php-1.47.0-wmf.8/index.php (/srv/mediawiki/php-1.47.0-wmf.8/index.php)
> /srv/mediawiki/w/index.php (/srv/mediawiki/w/index.php)

The second:

MediaWiki\Extension\Translate\PageTranslation\Hooks::renderTagPage (/srv/mediawiki/php-1.47.0-wmf.8/extensions/Translate/src/PageTranslation/Hooks.php)
> MediaWiki\HookContainer\HookContainer::run (/srv/mediawiki/php-1.47.0-wmf.8/includes/HookContainer/HookContainer.php)
> MediaWiki\HookContainer\HookRunner::onParserBeforeInternalParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/HookContainer/HookRunner.php)
> MediaWiki\Parser\Parser::internalParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parser::recursiveTagParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parser::parseExtensionTagAsTopLevelDoc (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parsoid\Config\DataAccess::parseWikitextWithTitle (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/Config/DataAccess.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::parseToHTML (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler::onExtension (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler::onTag (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\XMLTagBasedHandler::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/XMLTagBasedHandler.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunk (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Ext\ParsoidExtensionAPI::wikitextToDOM (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Ext/ParsoidExtensionAPI.php)
> Wikimedia\Parsoid\Fragments\ExtTagPFragment::asDom (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Fragments/ExtTagPFragment.php)
> Wikimedia\Parsoid\Wt2Html\TokenizerUtils::parsoidFragmentMarkerToTokens (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenizerUtils.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::a38 (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseparsoid_fragment_marker (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsetemplate (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsetplarg_or_template (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseinline_element (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseinlineline (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseblock (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsetlb (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsestart_with_headingIndex (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsestart (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\PegTokenizer::tokenizeSync (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php)
> Wikimedia\Parsoid\Wt2Html\PegTokenizer::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::processTemplateSource (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::processTemplateSource (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::expandTemplate (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::onTemplate (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::onTag (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\XMLTagBasedHandler::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/XMLTagBasedHandler.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunk (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunkily (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parseChunkily (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php)
> Wikimedia\Parsoid\Wikitext\ContentModelHandler::toDOM (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php)
> Wikimedia\Parsoid\Parsoid::parseWikitext (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php)
> Wikimedia\Parsoid\Parsoid::wikitext2html (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php)
> MediaWiki\Parser\Parsoid\ParsoidParser::genParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/ParsoidParser.php)
> MediaWiki\Parser\Parsoid\ParsoidParser::parse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/ParsoidParser.php)
> MediaWiki\Content\WikitextContentHandler::fillParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/WikitextContentHandler.php)
> MediaWiki\Content\ContentHandler::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/ContentHandler.php)
> MediaWiki\Content\Renderer\ContentRenderer::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/Renderer/ContentRenderer.php)
> MediaWiki\Revision\RenderedRevision::getSlotParserOutputUncached (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Revision\RenderedRevision::getSlotParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Revision\RevisionRenderer::combineSlotOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php)
> {closure:/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php(157)} (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php)
> MediaWiki\Revision\RenderedRevision::getRevisionParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Page\ParserOutputAccess::renderRevision (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\ParserOutputAccess::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\ParserOutputAccess::renderRevision (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> {closure:/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php(684)} (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\PoolCounter\PoolCounterWorkViaCallback::doWork (/srv/mediawiki/php-1.47.0-wmf.8/includes/PoolCounter/PoolCounterWorkViaCallback.php)
> MediaWiki\PoolCounter\PoolCounterWork::execute (/srv/mediawiki/php-1.47.0-wmf.8/includes/PoolCounter/PoolCounterWork.php)
> MediaWiki\Page\ParserOutputAccess::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\Article::generateContentOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/Article.php)
> MediaWiki\Page\Article::view (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/Article.php)
> MediaWiki\Actions\ViewAction::show (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ViewAction.php)
> MediaWiki\Actions\ActionEntryPoint::performAction (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\Actions\ActionEntryPoint::performRequest (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\Actions\ActionEntryPoint::execute (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\MediaWikiEntryPoint::run (/srv/mediawiki/php-1.47.0-wmf.8/includes/MediaWikiEntryPoint.php)
> /srv/mediawiki/php-1.47.0-wmf.8/index.php (/srv/mediawiki/php-1.47.0-wmf.8/index.php)
> /srv/mediawiki/w/index.php (/srv/mediawiki/w/index.php)

and the third:

MediaWiki\Extension\Translate\PageTranslation\Hooks::renderTagPage (/srv/mediawiki/php-1.47.0-wmf.8/extensions/Translate/src/PageTranslation/Hooks.php)
> MediaWiki\HookContainer\HookContainer::run (/srv/mediawiki/php-1.47.0-wmf.8/includes/HookContainer/HookContainer.php)
> MediaWiki\HookContainer\HookRunner::onParserBeforeInternalParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/HookContainer/HookRunner.php)
> MediaWiki\Parser\Parser::internalParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parser::recursiveTagParse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parser::parseExtensionTagAsTopLevelDoc (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parser.php)
> MediaWiki\Parser\Parsoid\Config\DataAccess::parseWikitextWithTitle (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/Config/DataAccess.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::parseToHTML (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler::onExtension (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler::onTag (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\XMLTagBasedHandler::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/XMLTagBasedHandler.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunk (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Ext\ParsoidExtensionAPI::wikitextToDOM (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Ext/ParsoidExtensionAPI.php)
> Wikimedia\Parsoid\Fragments\ExtTagPFragment::asDom (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Fragments/ExtTagPFragment.php)
> Wikimedia\Parsoid\Wt2Html\TokenizerUtils::parsoidFragmentMarkerToTokens (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenizerUtils.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::a38 (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseparsoid_fragment_marker (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsetemplate (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsetplarg_or_template (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseinline_element (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseinlineline (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parseblock (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsetlb (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsestart_with_headingIndex (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parsestart (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\Grammar::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/Grammar.php)
> Wikimedia\Parsoid\Wt2Html\PegTokenizer::tokenizeSync (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php)
> Wikimedia\Parsoid\Wt2Html\PegTokenizer::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PegTokenizer.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Utils\PipelineUtils::processTemplateSource (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::processTemplateSource (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::expandTemplate (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::onTemplate (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler::onTag (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php)
> Wikimedia\Parsoid\Wt2Html\TT\XMLTagBasedHandler::process (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TT/XMLTagBasedHandler.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunk (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline::processChunkily (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::processPipelineStages (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipeline::parseChunkily (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php)
> Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory::parse (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php)
> Wikimedia\Parsoid\Wikitext\ContentModelHandler::toDOM (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php)
> Wikimedia\Parsoid\Parsoid::parseWikitext (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php)
> Wikimedia\Parsoid\Parsoid::wikitext2html (/srv/mediawiki/php-1.47.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php)
> MediaWiki\Parser\Parsoid\ParsoidParser::genParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/ParsoidParser.php)
> MediaWiki\Parser\Parsoid\ParsoidParser::parse (/srv/mediawiki/php-1.47.0-wmf.8/includes/Parser/Parsoid/ParsoidParser.php)
> MediaWiki\Content\WikitextContentHandler::fillParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/WikitextContentHandler.php)
> MediaWiki\Content\ContentHandler::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/ContentHandler.php)
> MediaWiki\Content\Renderer\ContentRenderer::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Content/Renderer/ContentRenderer.php)
> MediaWiki\Revision\RenderedRevision::getSlotParserOutputUncached (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Revision\RenderedRevision::getSlotParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Revision\RevisionRenderer::combineSlotOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php)
> {closure:/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php(157)} (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RevisionRenderer.php)
> MediaWiki\Revision\RenderedRevision::getRevisionParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Revision/RenderedRevision.php)
> MediaWiki\Page\ParserOutputAccess::renderRevision (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\ParserOutputAccess::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\ParserOutputAccess::renderRevision (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> {closure:/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php(684)} (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\PoolCounter\PoolCounterWorkViaCallback::doWork (/srv/mediawiki/php-1.47.0-wmf.8/includes/PoolCounter/PoolCounterWorkViaCallback.php)
> MediaWiki\PoolCounter\PoolCounterWork::execute (/srv/mediawiki/php-1.47.0-wmf.8/includes/PoolCounter/PoolCounterWork.php)
> MediaWiki\Page\ParserOutputAccess::getParserOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/ParserOutputAccess.php)
> MediaWiki\Page\Article::generateContentOutput (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/Article.php)
> MediaWiki\Page\Article::view (/srv/mediawiki/php-1.47.0-wmf.8/includes/Page/Article.php)
> MediaWiki\Actions\ViewAction::show (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ViewAction.php)
> MediaWiki\Actions\ActionEntryPoint::performAction (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\Actions\ActionEntryPoint::performRequest (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\Actions\ActionEntryPoint::execute (/srv/mediawiki/php-1.47.0-wmf.8/includes/Actions/ActionEntryPoint.php)
> MediaWiki\MediaWikiEntryPoint::run (/srv/mediawiki/php-1.47.0-wmf.8/includes/MediaWikiEntryPoint.php)
> /srv/mediawiki/php-1.47.0-wmf.8/index.php (/srv/mediawiki/php-1.47.0-wmf.8/index.php)
> /srv/mediawiki/w/index.php (/srv/mediawiki/w/index.php)

The second and third of these go through the newly-added ExtTagPFragment, and are thus "suspicious". These might not even be Translation-related tags, they might be unrelated legacy extension tags which we are feeding to the legacy preprocessor for expansion. That's triggering the ParserBeforeInternalParse hook, ::renderTagPage, and for some reason Translate decides in that hook that it needs to rewrite the display title. Still working on that last bit.

Change #1305996 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] [parser] When expanding an extension tag with a title, use a new frame

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

Technically this is a bug in the Parsoid <-> core integration, but there is no component for it right now, so, let us leave it tagged as Parsoid. We'll backport Scott's fix on Monday.

Change #1306401 had a related patch set uploaded (by Arlolra; author: Arlolra):

[operations/mediawiki-config@master] Temporarily disable experimental ExtTagPFragment type

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

Change #1306401 merged by jenkins-bot:

[operations/mediawiki-config@master] Temporarily disable experimental ExtTagPFragment type

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

Mentioned in SAL (#wikimedia-operations) [2026-06-29T20:09:17Z] <arlolra@deploy1003> Started scap sync-world: Backport for [[gerrit:1305724|Turn on Parsoid Read views for 5% of English Wikipedia desktop traffic (T430194)]], [[gerrit:1306401|Temporarily disable experimental ExtTagPFragment type (T430344 T429624)]]

Mentioned in SAL (#wikimedia-operations) [2026-06-29T20:11:12Z] <arlolra@deploy1003> arlolra, cscott: Backport for [[gerrit:1305724|Turn on Parsoid Read views for 5% of English Wikipedia desktop traffic (T430194)]], [[gerrit:1306401|Temporarily disable experimental ExtTagPFragment type (T430344 T429624)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-06-29T20:22:33Z] <arlolra@deploy1003> Finished scap sync-world: Backport for [[gerrit:1305724|Turn on Parsoid Read views for 5% of English Wikipedia desktop traffic (T430194)]], [[gerrit:1306401|Temporarily disable experimental ExtTagPFragment type (T430344 T429624)]] (duration: 13m 16s)

Aklapper renamed this task from Possible Parsoid bug with titles to Parsoid displays first used template as page title (instead of page title).Jun 30 2026, 12:38 AM

Change #1305996 merged by jenkins-bot:

[mediawiki/core@master] [parser] When expanding an extension tag with a title, use a new frame

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

Change #1306996 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@wmf/1.47.0-wmf.9] [parser] When expanding an extension tag with a title, use a new frame

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

Change #1306996 merged by jenkins-bot:

[mediawiki/core@wmf/1.47.0-wmf.9] [parser] When expanding an extension tag with a title, use a new frame

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

Mentioned in SAL (#wikimedia-operations) [2026-07-02T07:42:45Z] <cscott@deploy1003> Started scap sync-world: Backport for [[gerrit:1307058|[REST] Don't language-convert non-parsoid output; don't lookup bogus titles (T430778)]], [[gerrit:1306996|[parser] When expanding an extension tag with a title, use a new frame (T430344 T429624)]]

Mentioned in SAL (#wikimedia-operations) [2026-07-02T07:44:51Z] <cscott@deploy1003> cscott: Backport for [[gerrit:1307058|[REST] Don't language-convert non-parsoid output; don't lookup bogus titles (T430778)]], [[gerrit:1306996|[parser] When expanding an extension tag with a title, use a new frame (T430344 T429624)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-07-02T08:01:43Z] <cscott@deploy1003> Finished scap sync-world: Backport for [[gerrit:1307058|[REST] Don't language-convert non-parsoid output; don't lookup bogus titles (T430778)]], [[gerrit:1306996|[parser] When expanding an extension tag with a title, use a new frame (T430344 T429624)]] (duration: 18m 58s)

Change #1307218 had a related patch set uploaded (by Arlolra; author: Arlolra):

[operations/mediawiki-config@master] Revert "Temporarily disable experimental ExtTagPFragment type"

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

Change #1307218 merged by jenkins-bot:

[operations/mediawiki-config@master] Revert "Temporarily disable experimental ExtTagPFragment type"

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

Mentioned in SAL (#wikimedia-operations) [2026-07-02T20:28:14Z] <arlolra@deploy1003> Started scap sync-world: Backport for [[gerrit:1307218|Revert "Temporarily disable experimental ExtTagPFragment type" (T430344 T429624)]], [[gerrit:1307227|Preview: Ensure ParserMigration's handler is called to setUseParsoid (T429408)]], [[gerrit:1307223|Ensure ParserMigration is consulted if Parsoid should be used (T429408)]]

Mentioned in SAL (#wikimedia-operations) [2026-07-02T20:31:07Z] <arlolra@deploy1003> cscott, arlolra: Backport for [[gerrit:1307218|Revert "Temporarily disable experimental ExtTagPFragment type" (T430344 T429624)]], [[gerrit:1307227|Preview: Ensure ParserMigration's handler is called to setUseParsoid (T429408)]], [[gerrit:1307223|Ensure ParserMigration is consulted if Parsoid should be used (T429408)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Cha

Mentioned in SAL (#wikimedia-operations) [2026-07-02T20:40:50Z] <arlolra@deploy1003> Finished scap sync-world: Backport for [[gerrit:1307218|Revert "Temporarily disable experimental ExtTagPFragment type" (T430344 T429624)]], [[gerrit:1307227|Preview: Ensure ParserMigration's handler is called to setUseParsoid (T429408)]], [[gerrit:1307223|Ensure ParserMigration is consulted if Parsoid should be used (T429408)]] (duration: 12m 35s)

ABreault-WMF assigned this task to cscott.

The reverted patch was re-deployed along with the fix in T430344#12078494

Post-deploy, the pages were purged again continue to render as expected