Page MenuHomePhabricator

TypeError: preg_replace(): Argument #3 ($subject) must be of type array|string, null given
Open, MediumPublicPRODUCTION ERROR

Description

Error
  • service.version: 1.46.0-wmf.12
  • timestamp: 2026-01-21T13:42:29.904Z
  • labels.phpversion: 8.3.29
  • trace.id: 88b1e92b-7225-4d67-a0c0-2375e36b9eaa
  • Find trace.id in Logstash
labels.normalized_message
[{reqId}] {exception_url}   TypeError: preg_replace(): Argument #3 ($subject) must be of type array|string, null given
FrameLocationCall
from/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1376)
#0/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1376)preg_replace(string, string, null)
#1/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1412)Wikimedia\Parsoid\Wt2Html\DOM\Processors\Linter->lintTemplateArgInExtensionTag(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\NodeData\DataParsoid, stdClass)
#2/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1474)Wikimedia\Parsoid\Wt2Html\DOM\Processors\Linter->logWikitextFixups(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Config\Env, stdClass)
#3/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1460)Wikimedia\Parsoid\Wt2Html\DOM\Processors\Linter->findLints(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Config\Env, stdClass)
#4/srv/mediawiki/php-1.46.0-wmf.12/extensions/Cite/src/Parsoid/RefTagHandler.php(123)Wikimedia\Parsoid\Wt2Html\DOM\Processors\Linter->Wikimedia\Parsoid\Wt2Html\DOM\Processors\{closure}(Wikimedia\Parsoid\DOM\Element)
#5/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1456)Cite\Parsoid\RefTagHandler->lintHandler(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Closure)
#6/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/Linter.php(1506)Wikimedia\Parsoid\Wt2Html\DOM\Processors\Linter->findLints(Wikimedia\Parsoid\DOM\DocumentFragment, Wikimedia\Parsoid\Config\Env, stdClass)
#7/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(131)Wikimedia\Parsoid\Wt2Html\DOM\Processors\Linter->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\DocumentFragment, array, bool)
#8/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(175)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->doPostProcess(Wikimedia\Parsoid\DOM\DocumentFragment)
#9/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(127)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->process(Wikimedia\Parsoid\DOM\DocumentFragment, array)
#10/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php(138)Wikimedia\Parsoid\Wt2Html\ParserPipeline->parse(Wikimedia\Parsoid\DOM\DocumentFragment, array)
#11/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/ProcessEmbeddedDocs.php(47)Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\Wt2Html\PageConfigFrame, Wikimedia\Parsoid\DOM\DocumentFragment, array)
#12/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Utils/ContentUtils.php(169)Wikimedia\Parsoid\Wt2Html\DOM\Processors\ProcessEmbeddedDocs->Wikimedia\Parsoid\Wt2Html\DOM\Processors\{closure}(Wikimedia\Parsoid\DOM\DocumentFragment)
#13/srv/mediawiki/php-1.46.0-wmf.12/extensions/Cite/src/Parsoid/ReferenceListTagHandler.php(75)Wikimedia\Parsoid\Utils\ContentUtils::Wikimedia\Parsoid\Utils\{closure}(string)
#14/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Utils/ContentUtils.php(264)Cite\Parsoid\ReferenceListTagHandler->processAttributeEmbeddedHTML(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Closure)
#15/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Utils/ContentUtils.php(178)Wikimedia\Parsoid\Utils\ContentUtils::processAttributeEmbeddedHTMLInternal(MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Closure)
#16/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/ProcessEmbeddedDocs.php(43)Wikimedia\Parsoid\Utils\ContentUtils::processAttributeEmbeddedDom(MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Closure)
#17/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/ProcessEmbeddedDocs.php(62)Wikimedia\Parsoid\Wt2Html\DOM\Processors\ProcessEmbeddedDocs->processNode(Wikimedia\Parsoid\DOM\Element, stdClass)
#18/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/ProcessEmbeddedDocs.php(62)Wikimedia\Parsoid\Wt2Html\DOM\Processors\ProcessEmbeddedDocs->processNode(Wikimedia\Parsoid\DOM\Element, stdClass)
#19/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/ProcessEmbeddedDocs.php(62)Wikimedia\Parsoid\Wt2Html\DOM\Processors\ProcessEmbeddedDocs->processNode(Wikimedia\Parsoid\DOM\Element, stdClass)
#20/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/ProcessEmbeddedDocs.php(83)Wikimedia\Parsoid\Wt2Html\DOM\Processors\ProcessEmbeddedDocs->processNode(Wikimedia\Parsoid\DOM\Element)
#21/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(131)Wikimedia\Parsoid\Wt2Html\DOM\Processors\ProcessEmbeddedDocs->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, array, bool)
#22/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(175)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->doPostProcess(Wikimedia\Parsoid\DOM\Element)
#23/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(188)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->process(Wikimedia\Parsoid\DOM\Element, array)
#24/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(159)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->processChunkily(Wikimedia\Parsoid\DOM\Element, array)
#25/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(181)Wikimedia\Parsoid\Wt2Html\ParserPipeline->processPipelineStages(array, string, array)
#26/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(617)Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#27/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(184)Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#28/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Parsoid.php(205)Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, null)
#29/srv/mediawiki/php-1.46.0-wmf.12/vendor/wikimedia/parsoid/src/Parsoid.php(271)Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array, null)
#30/srv/mediawiki/php-1.46.0-wmf.12/includes/Parser/Parsoid/ParsoidParser.php(153)Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, null, MediaWiki\Parser\ParserOutput)
#31/srv/mediawiki/php-1.46.0-wmf.12/includes/Parser/Parsoid/ParsoidParser.php(286)MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOptions, null)
#32/srv/mediawiki/php-1.46.0-wmf.12/includes/Content/WikitextContentHandler.php(375)MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, MediaWiki\Parser\ParserOptions, bool, bool, int, null)
#33/srv/mediawiki/php-1.46.0-wmf.12/includes/Content/ContentHandler.php(1574)MediaWiki\Content\WikitextContentHandler->fillParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#34/srv/mediawiki/php-1.46.0-wmf.12/includes/Content/Renderer/ContentRenderer.php(67)MediaWiki\Content\ContentHandler->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#35/srv/mediawiki/php-1.46.0-wmf.12/includes/Revision/RenderedRevision.php(246)MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Page\PageIdentityValue, MediaWiki\Revision\RevisionStoreRecord, MediaWiki\Parser\ParserOptions, array)
#36/srv/mediawiki/php-1.46.0-wmf.12/includes/Revision/RenderedRevision.php(219)MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(MediaWiki\Content\WikitextContent, array)
#37/srv/mediawiki/php-1.46.0-wmf.12/includes/Revision/RevisionRenderer.php(225)MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#38/srv/mediawiki/php-1.46.0-wmf.12/includes/Revision/RevisionRenderer.php(158)MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, MediaWiki\Parser\ParserOptions, array)
#39/srv/mediawiki/php-1.46.0-wmf.12/includes/Revision/RenderedRevision.php(182)MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#40/srv/mediawiki/php-1.46.0-wmf.12/includes/Page/ParserOutputAccess.php(590)MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#41/srv/mediawiki/php-1.46.0-wmf.12/includes/Page/ParserOutputAccess.php(505)MediaWiki\Page\ParserOutputAccess->renderRevision(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, array, null)
#42/srv/mediawiki/php-1.46.0-wmf.12/extensions/Linter/includes/LintUpdate.php(82)MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, array)
#43/srv/mediawiki/php-1.46.0-wmf.12/includes/Deferred/DeferredUpdates.php(444)MediaWiki\Linter\LintUpdate->doUpdate()
#44/srv/mediawiki/php-1.46.0-wmf.12/includes/Deferred/RefreshSecondaryDataUpdate.php(99)MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Linter\LintUpdate)
#45/srv/mediawiki/php-1.46.0-wmf.12/includes/Deferred/DeferredUpdates.php(444)MediaWiki\Deferred\RefreshSecondaryDataUpdate->doUpdate()
#46/srv/mediawiki/php-1.46.0-wmf.12/includes/Storage/DerivedPageDataUpdater.php(1874)MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\RefreshSecondaryDataUpdate)
#47/srv/mediawiki/php-1.46.0-wmf.12/includes/Page/WikiPage.php(1891)MediaWiki\Storage\DerivedPageDataUpdater->doSecondaryDataUpdates(array)
#48/srv/mediawiki/php-1.46.0-wmf.12/includes/JobQueue/Jobs/RefreshLinksJob.php(291)MediaWiki\Page\WikiPage->doSecondaryDataUpdates(array)
#49/srv/mediawiki/php-1.46.0-wmf.12/includes/JobQueue/Jobs/RefreshLinksJob.php(202)MediaWiki\JobQueue\Jobs\RefreshLinksJob->runForTitle(MediaWiki\Title\Title)
#50/srv/mediawiki/php-1.46.0-wmf.12/extensions/EventBus/includes/JobExecutor.php(94)MediaWiki\JobQueue\Jobs\RefreshLinksJob->run()
#51/srv/mediawiki/rpc/RunSingleJob.php(60)MediaWiki\Extension\EventBus\JobExecutor->execute(array)
#52{main}
Impact
Notes

Event Timeline

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

[mediawiki/services/parsoid@master] Log a warning if extension src isn't present when linting

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

Change #1229784 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Log a warning if extension src isn't present when linting

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

Change #1233217 had a related patch set uploaded (by OSleger; author: OSleger):

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.23.0-a13

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

Change #1233217 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.23.0-a13

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

Looking at a few examples from logstash,
https://pl.wikipedia.org/w/index.php?title=Trzej_Kr%C3%B3lowie&action=edit&oldid=75738431 (log)
https://de.wikipedia.org/w/index.php?title=Altskandinavischer_Kalender&oldid=255955434 (log)

we can isolate a reproducible case,

λ (master *) cat t
<references>
<ref>
<poem>123</poem>
</ref>
</references>

λ (master *) cat t | php bin/parse.php --integrated --wt2lint
[warn] Expected src for node poem

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

[mediawiki/services/parsoid@master] [WIP] Cleanup after processing embeded docs

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

Change #1239956 had a related patch set uploaded (by OSleger; author: OSleger):

[mediawiki/extensions/Cite@master] Parsoid test: Add lint test for disappearing src attr

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

Change #1238058 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Cleanup after processing embeded docs

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