Page MenuHomePhabricator

PHP Warning: Undefined property: Wikimedia\Parsoid\NodeData\DataMw::$parts
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
  • mwversion: 1.47.0-wmf.2
  • timestamp: 2026-05-16T01:39:28.383Z
  • phpversion: 8.3.30
  • reqId: b08b7068-4909-4477-9dc7-f3ec506c0330
  • Find reqId in Logstash
normalized_message
[{reqId}] {exception_url}   PHP Warning: Undefined property: Wikimedia\Parsoid\NodeData\DataMw::$parts

That comes from src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1324) which generate 3 warnings:

src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1431)
PHP Warning: Undefined property: Wikimedia\Parsoid\NodeData\DataParsoid::$pi
src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1428)
PHP Warning: Undefined property: Wikimedia\Parsoid\NodeData\DataMw::$parts
src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1433)
PHP Warning: Undefined property: Wikimedia\Parsoid\NodeData\DataParsoid::$dsr
src/Wt2Html/DOM/Processors/DOMRangeBuilder.php
1427             $newRangeDmw = DOMDataUtils::getDataMw( $newRangeStart );
1428             $newRangeDmw->parts = $rangeDmw->parts;
1429             unset( $rangeDmw->parts );
1430             $newRangeDp = DOMDataUtils::getDataParsoid( $newRangeStart );
1431             $newRangeDp->pi = $rangeDp->pi;
1432             unset( $rangeDp->pi );
1433             $newRangeDp->dsr = $rangeDp->dsr;
1434             unset( $rangeDp->dsr );

7 days view search for DataParsoid on mediawiki-errors dashboard. Hits and affected wikis:
DataParsoid.png (897×283 px, 22 KB) DataParsoid_wikis.png (247×166 px, 11 KB)

FrameLocationCall
from/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1432)
#0/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1432)MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1328)Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeBuilder->handleFirstRenderingTransparentNode(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeInfo)
#2/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(143)Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeBuilder->Wikimedia\Parsoid\Wt2Html\DOM\Processors\{closure}(Wikimedia\Parsoid\DOM\Element, null)
#3/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(221)Wikimedia\Parsoid\Utils\DOMTraverser->callHandlers(Wikimedia\Parsoid\DOM\Element, null, null)
#4/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(235)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, null, Wikimedia\Parsoid\DOM\Element, null)
#5/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(177)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, null, Wikimedia\Parsoid\DOM\Element, null)
#6/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1343)Wikimedia\Parsoid\Utils\DOMTraverser->traverse(null, Wikimedia\Parsoid\DOM\Element)
#7/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1068)Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeBuilder->handleRenderingTransparentEltsBetweenBlocks(Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeInfo)
#8/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMRangeBuilder.php(1276)Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeBuilder->encapsulateTemplates(array)
#9/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/WrapTemplates.php(26)Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMRangeBuilder->execute(Wikimedia\Parsoid\DOM\Element)
#10/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(131)Wikimedia\Parsoid\Wt2Html\DOM\Processors\WrapTemplates->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, array, bool)
#11/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(175)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->doPostProcess(Wikimedia\Parsoid\DOM\Element)
#12/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(188)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->process(Wikimedia\Parsoid\DOM\Element, array)
#13/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(159)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->processChunkily(Wikimedia\Parsoid\DOM\Element, array)
#14/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(181)Wikimedia\Parsoid\Wt2Html\ParserPipeline->processPipelineStages(array, string, array)
#15/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(622)Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#16/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(188)Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#17/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Parsoid.php(204)Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, null)
#18/srv/mediawiki/php-1.47.0-wmf.2/vendor/wikimedia/parsoid/src/Parsoid.php(270)Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array, null)
#19/srv/mediawiki/php-1.47.0-wmf.2/includes/Parser/Parsoid/ParsoidParser.php(146)Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, null, MediaWiki\Parser\ParserOutput)
#20/srv/mediawiki/php-1.47.0-wmf.2/includes/Parser/Parsoid/ParsoidParser.php(280)MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOptions, null)
#21/srv/mediawiki/php-1.47.0-wmf.2/includes/Content/WikitextContentHandler.php(360)MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, MediaWiki\Parser\ParserOptions, bool, bool, int, null)
#22/srv/mediawiki/php-1.47.0-wmf.2/includes/Content/ContentHandler.php(1574)MediaWiki\Content\WikitextContentHandler->fillParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#23/srv/mediawiki/php-1.47.0-wmf.2/includes/Content/Renderer/ContentRenderer.php(62)MediaWiki\Content\ContentHandler->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#24/srv/mediawiki/php-1.47.0-wmf.2/includes/Revision/RenderedRevision.php(246)MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Page\PageIdentityValue, MediaWiki\Revision\RevisionStoreRecord, MediaWiki\Parser\ParserOptions, array)
#25/srv/mediawiki/php-1.47.0-wmf.2/includes/Revision/RenderedRevision.php(219)MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(MediaWiki\Content\WikitextContent, array)
#26/srv/mediawiki/php-1.47.0-wmf.2/includes/Revision/RevisionRenderer.php(226)MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#27/srv/mediawiki/php-1.47.0-wmf.2/includes/Revision/RevisionRenderer.php(159)MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, MediaWiki\Parser\ParserOptions, array)
#28/srv/mediawiki/php-1.47.0-wmf.2/includes/Revision/RenderedRevision.php(182)MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#29/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/ParserOutputAccess.php(593)MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#30/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/ParserOutputAccess.php(508)MediaWiki\Page\ParserOutputAccess->renderRevision(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, array, null)
#31/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/ParserOutputAccess.php(582)MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, array)
#32/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/ParserOutputAccess.php(684)MediaWiki\Page\ParserOutputAccess->renderRevision(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, array)
#33/srv/mediawiki/php-1.47.0-wmf.2/includes/PoolCounter/PoolCounterWorkViaCallback.php(68)MediaWiki\Page\ParserOutputAccess->MediaWiki\Page\{closure}()
#34/srv/mediawiki/php-1.47.0-wmf.2/includes/PoolCounter/PoolCounterWork.php(159)MediaWiki\PoolCounter\PoolCounterWorkViaCallback->doWork()
#35/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/ParserOutputAccess.php(498)MediaWiki\PoolCounter\PoolCounterWork->execute()
#36/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/Article.php(882)MediaWiki\Page\ParserOutputAccess->getParserOutput(MediaWiki\Page\WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, array)
#37/srv/mediawiki/php-1.47.0-wmf.2/includes/Page/Article.php(543)MediaWiki\Page\Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#38/srv/mediawiki/php-1.47.0-wmf.2/includes/Actions/ViewAction.php(71)MediaWiki\Page\Article->view()
#39/srv/mediawiki/php-1.47.0-wmf.2/includes/Actions/ActionEntryPoint.php(753)MediaWiki\Actions\ViewAction->show()
#40/srv/mediawiki/php-1.47.0-wmf.2/includes/Actions/ActionEntryPoint.php(511)MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#41/srv/mediawiki/php-1.47.0-wmf.2/includes/Actions/ActionEntryPoint.php(145)MediaWiki\Actions\ActionEntryPoint->performRequest()
#42/srv/mediawiki/php-1.47.0-wmf.2/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#43/srv/mediawiki/php-1.47.0-wmf.2/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#44/srv/mediawiki/w/index.php(3)require(string)
#45{main}
Impact
Notes

Event Timeline

Looked back 6 weeks in logstash, and this first showed up May 2.

Change #1290765 had a related patch set uploaded (by Kwtbmmrnwnymy0; author: Kwtbmmrnwnymy0):

[mediawiki/vendor@master] DOMRangeBuilder: Guard against undefined properties in handleFirstRenderingTransparentNode

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

Change #1290824 had a related patch set uploaded (by Kwtbmmrnwnymy0; author: Kwtbmmrnwnymy0):

[mediawiki/services/parsoid@master] DOMRangeBuilder: Guard against undefined properties in handleFirstRenderingTransparentNode

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

Change #1290765 abandoned by Kwtbmmrnwnymy0:

[mediawiki/vendor@master] DOMRangeBuilder: Guard against undefined properties in handleFirstRenderingTransparentNode

Reason:

per above

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

Change #1290911 had a related patch set uploaded (by Subramanya Sastry; author: Subramanya Sastry):

[mediawiki/services/parsoid@master] WIP: Transfer data-mw only if migrated node was first node of transclusion

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

Change #1290919 had a related patch set uploaded (by Subramanya Sastry; author: Subramanya Sastry):

[mediawiki/services/parsoid@master] WIP: DOMRangeBuilder: Don't stash mw:Param* metas

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

Interestingly enough, in all the cases I've looked at so far (uk, ml, de, sl), mw:Param nodes are involved .. so, the 2nd patch will fix this on its own, but the first patch is also worth reviewing on its own.

Okay, turns out that the second patch is the correct fix and the first one is now just a refactor.

Change #1290919 merged by jenkins-bot:

[mediawiki/services/parsoid@master] DOMRangeBuilder: Don't stash mw:Param* metas

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

Change #1290824 abandoned by Arlolra:

[mediawiki/services/parsoid@master] DOMRangeBuilder: Guard against undefined properties in handleFirstRenderingTransparentNode

Reason:

This is being fixed by If63a246e85eaf71e7031740cdfa234da8c1b0c53

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

Change #1290911 merged by jenkins-bot:

[mediawiki/services/parsoid@master] DOMRangeBuilder: Refactor handleFirstRenderingTransparentNode a bit

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

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

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.24.0-a5

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

Change #1293141 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.24.0-a5

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