Page MenuHomePhabricator

TypeError: Wikimedia\Parsoid\Core\DOMCompat::getPreviousElementSibling(): Argument #1 ($node) must be of type DOMElement|DOMCharacterData|Wikimedia\Parsoid\DOM\Element|Wikimedia\Parsoid\DOM\CharacterData, null given
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
  • service.version: 1.46.0-wmf.14
  • timestamp: 2026-02-05T19:07:43.560Z
  • labels.phpversion: 8.3.30
  • trace.id: bf9e3770-1ad2-4f24-b48d-4a0096b62531
  • Find trace.id in Logstash
labels.normalized_message
[{reqId}] {exception_url}   TypeError: Wikimedia\Parsoid\Core\DOMCompat::getPreviousElementSibling(): Argument #1 ($node) must be of type DOMElement|DOMCharacterData|Wikimedia\Parsoid\DOM\Element|Wikimedia\Parsoid\DOM\CharacterData, null given, called in
FrameLocationCall
from/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Core/DOMCompat.php(413)
#0/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(510)Wikimedia\Parsoid\Core\DOMCompat::getPreviousElementSibling(null)
#1/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(704)Cite\Parsoid\References->insertReferencesIntoDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, Cite\Parsoid\ReferencesData, bool)
#2/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(715)Cite\Parsoid\References->processRefs(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Cite\Parsoid\ReferencesData, Wikimedia\Parsoid\DOM\DocumentFragment)
#3/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Utils/ContentUtils.php(169)Cite\Parsoid\References->Cite\Parsoid\{closure}(Wikimedia\Parsoid\DOM\DocumentFragment)
#4/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Ext/ParsoidExtensionAPI.php(690)Wikimedia\Parsoid\Utils\ContentUtils::processAttributeEmbeddedDom(MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Closure)
#5/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(713)Wikimedia\Parsoid\Ext\ParsoidExtensionAPI->processAttributeEmbeddedDom(Wikimedia\Parsoid\DOM\Element, Closure)
#6/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(721)Cite\Parsoid\References->processRefs(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Cite\Parsoid\ReferencesData, Wikimedia\Parsoid\DOM\Element)
#7/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(721)Cite\Parsoid\References->processRefs(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Cite\Parsoid\ReferencesData, Wikimedia\Parsoid\DOM\Element)
#8/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(721)Cite\Parsoid\References->processRefs(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Cite\Parsoid\ReferencesData, Wikimedia\Parsoid\DOM\Element)
#9/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/References.php(721)Cite\Parsoid\References->processRefs(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Cite\Parsoid\ReferencesData, Wikimedia\Parsoid\DOM\Element)
#10/srv/mediawiki/php-1.46.0-wmf.14/extensions/Cite/src/Parsoid/CiteDocumentPostProcessor.php(31)Cite\Parsoid\References->processRefs(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Cite\Parsoid\ReferencesData, Wikimedia\Parsoid\DOM\Element)
#11/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/RunExtensionProcessors.php(109)Cite\Parsoid\CiteDocumentPostProcessor->wtPostprocess(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, Wikimedia\Parsoid\DOM\Element, array)
#12/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(131)Wikimedia\Parsoid\Wt2Html\DOM\Processors\RunExtensionProcessors->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, array, bool)
#13/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(175)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->doPostProcess(Wikimedia\Parsoid\DOM\Element)
#14/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(188)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->process(Wikimedia\Parsoid\DOM\Element, array)
#15/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(159)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->processChunkily(Wikimedia\Parsoid\DOM\Element, array)
#16/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(181)Wikimedia\Parsoid\Wt2Html\ParserPipeline->processPipelineStages(array, string, array)
#17/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(617)Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#18/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(181)Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#19/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Parsoid.php(204)Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, null)
#20/srv/mediawiki/php-1.46.0-wmf.14/vendor/wikimedia/parsoid/src/Parsoid.php(270)Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array, null)
#21/srv/mediawiki/php-1.46.0-wmf.14/includes/Parser/Parsoid/ParsoidParser.php(153)Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, null, MediaWiki\Parser\ParserOutput)
#22/srv/mediawiki/php-1.46.0-wmf.14/includes/Parser/Parsoid/ParsoidParser.php(288)MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOptions, null)
#23/srv/mediawiki/php-1.46.0-wmf.14/includes/Content/WikitextContentHandler.php(375)MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, MediaWiki\Parser\ParserOptions, bool, bool, int, null)
#24/srv/mediawiki/php-1.46.0-wmf.14/includes/Content/ContentHandler.php(1574)MediaWiki\Content\WikitextContentHandler->fillParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#25/srv/mediawiki/php-1.46.0-wmf.14/includes/Content/Renderer/ContentRenderer.php(67)MediaWiki\Content\ContentHandler->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#26/srv/mediawiki/php-1.46.0-wmf.14/includes/Revision/RenderedRevision.php(246)MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Page\PageIdentityValue, MediaWiki\Revision\RevisionStoreCacheRecord, MediaWiki\Parser\ParserOptions, array)
#27/srv/mediawiki/php-1.46.0-wmf.14/includes/Revision/RenderedRevision.php(219)MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(MediaWiki\Content\WikitextContent, array)
#28/srv/mediawiki/php-1.46.0-wmf.14/includes/Revision/RevisionRenderer.php(225)MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#29/srv/mediawiki/php-1.46.0-wmf.14/includes/Revision/RevisionRenderer.php(158)MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, MediaWiki\Parser\ParserOptions, array)
#30/srv/mediawiki/php-1.46.0-wmf.14/includes/Revision/RenderedRevision.php(182)MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#31/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/ParserOutputAccess.php(590)MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#32/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/ParserOutputAccess.php(505)MediaWiki\Page\ParserOutputAccess->renderRevision(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, array, null)
#33/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/ParserOutputAccess.php(579)MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, array)
#34/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/ParserOutputAccess.php(681)MediaWiki\Page\ParserOutputAccess->renderRevision(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, array)
#35/srv/mediawiki/php-1.46.0-wmf.14/includes/PoolCounter/PoolCounterWorkViaCallback.php(68)MediaWiki\Page\ParserOutputAccess->MediaWiki\Page\{closure}()
#36/srv/mediawiki/php-1.46.0-wmf.14/includes/PoolCounter/PoolCounterWork.php(159)MediaWiki\PoolCounter\PoolCounterWorkViaCallback->doWork()
#37/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/ParserOutputAccess.php(495)MediaWiki\PoolCounter\PoolCounterWork->execute()
#38/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/Article.php(883)MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreCacheRecord, array)
#39/srv/mediawiki/php-1.46.0-wmf.14/includes/Page/Article.php(544)MediaWiki\Page\Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#40/srv/mediawiki/php-1.46.0-wmf.14/includes/Actions/ViewAction.php(71)MediaWiki\Page\Article->view()
#41/srv/mediawiki/php-1.46.0-wmf.14/includes/Actions/ActionEntryPoint.php(739)MediaWiki\Actions\ViewAction->show()
#42/srv/mediawiki/php-1.46.0-wmf.14/includes/Actions/ActionEntryPoint.php(510)MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#43/srv/mediawiki/php-1.46.0-wmf.14/includes/Actions/ActionEntryPoint.php(144)MediaWiki\Actions\ActionEntryPoint->performRequest()
#44/srv/mediawiki/php-1.46.0-wmf.14/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#45/srv/mediawiki/php-1.46.0-wmf.14/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#46/srv/mediawiki/w/index.php(3)require(string)
#47{main}
Impact
Notes

Seeing about 4000 of these in 1.46.0-wmf.14 (T413805). Happening at a pretty steady rate since ~17:40 UTC, the majority for skwiki.

Event Timeline

Seems to have started quite a bit later than the train rolled to all group2, at 10:36 UTC:

https://sal.toolforge.org/log/MqZgLZwB8tZ8Ohr0Wave

Looks like pretty much every single log entry is for the same skwiki page ... so, we should fix it, but probably doesn't need a rollback.

This was introduced with https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Cite/+/1170529 and I'm assigning it back to the WMDE team to determine if they want to revert that patch or improve it.

MSantos added a project: Parsoid.
MSantos removed a project: Parsoid.

Change #1239151 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@master] Parsoid: Add safeguard when checking for reflist template

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

Change #1239151 merged by jenkins-bot:

[mediawiki/extensions/Cite@master] Parsoid: Add safeguard when checking for reflist template

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

Change #1239573 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/Cite@wmf/1.46.0-wmf.15] Parsoid: Add safeguard when checking for reflist template

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

Change #1239573 merged by jenkins-bot:

[mediawiki/extensions/Cite@wmf/1.46.0-wmf.15] Parsoid: Add safeguard when checking for reflist template

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

Mentioned in SAL (#wikimedia-operations) [2026-02-17T08:37:36Z] <wmde-fisch@deploy2002> Started scap sync-world: Backport for [[gerrit:1239573|Parsoid: Add safeguard when checking for reflist template (T416630)]]

Mentioned in SAL (#wikimedia-operations) [2026-02-17T08:41:51Z] <wmde-fisch@deploy2002> wmde-fisch: Backport for [[gerrit:1239573|Parsoid: Add safeguard when checking for reflist template (T416630)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-02-17T08:48:26Z] <wmde-fisch@deploy2002> Finished scap sync-world: Backport for [[gerrit:1239573|Parsoid: Add safeguard when checking for reflist template (T416630)]] (duration: 10m 51s)