Page MenuHomePhabricator

Wikimedia\Assert\InvariantException: Invariant failed: Bad UTF-8 at start of string
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
  • mwversion: 1.47.0-wmf.7
  • timestamp: 2026-06-25T15:23:01.409Z
  • phpversion: 8.3.31
  • reqId: 3719eb05-f2b1-4b3c-81d0-f0e3bd00f1cf
  • Find reqId in Logstash
normalized_message
[{reqId}] {exception_url}   Wikimedia\Assert\InvariantException: Invariant failed: Bad UTF-8 at start of string
FrameLocationCall
from/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/assert/src/Assert.php(231)
#0/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/PHPUtils.php(159)Wikimedia\Assert\Assert::invariant(bool, string)
#1/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Core/SourceRange.php(104)Wikimedia\Parsoid\Utils\PHPUtils::safeSubstr(string, int, int)
#2/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateEncapsulator.php(156)Wikimedia\Parsoid\Core\SourceRange->substr(Wikimedia\Parsoid\Core\SourceString)
#3/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateEncapsulator.php(77)Wikimedia\Parsoid\Wt2Html\TT\TemplateEncapsulator->getTemplateInfo()
#4/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(692)Wikimedia\Parsoid\Wt2Html\TT\TemplateEncapsulator->encapTokens(array)
#5/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1101)Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->encapTokens(Wikimedia\Parsoid\Wt2Html\TT\TemplateEncapsulator, array)
#6/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1138)Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTemplate(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#7/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TT/XMLTagBasedHandler.php(47)Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#8/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php(116)Wikimedia\Parsoid\Wt2Html\TT\XMLTagBasedHandler->process(array)
#9/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/TokenHandlerPipeline.php(170)Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline->processChunk(array)
#10/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(127)Wikimedia\Parsoid\Wt2Html\TokenHandlerPipeline->process(array, array)
#11/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php(139)Wikimedia\Parsoid\Wt2Html\ParserPipeline->parse(string, array)
#12/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Handlers/TableFixups.php(527)Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\Wt2Html\PageConfigFrame, string, array)
#13/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Handlers/TableFixups.php(903)Wikimedia\Parsoid\Wt2Html\DOM\Handlers\TableFixups::convertAttribsToContent(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\Wt2Html\PageConfigFrame, Wikimedia\Parsoid\DOM\Element, bool, bool)
#14/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(143)Wikimedia\Parsoid\Wt2Html\DOM\Handlers\TableFixups::handleTableCellTemplates(Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#15/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(221)Wikimedia\Parsoid\Utils\DOMTraverser->callHandlers(Wikimedia\Parsoid\DOM\Element, MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\Utils\DTState)
#16/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(235)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#17/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(235)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#18/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(235)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#19/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(235)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#20/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Utils/DOMTraverser.php(177)Wikimedia\Parsoid\Utils\DOMTraverser->traverseInternal(bool, MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#21/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/DOM/Processors/DOMPPTraverser.php(42)Wikimedia\Parsoid\Utils\DOMTraverser->traverse(MediaWiki\Parser\Parsoid\Config\SiteConfig, Wikimedia\Parsoid\DOM\Element, Wikimedia\Parsoid\Utils\DTState)
#22/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(131)Wikimedia\Parsoid\Wt2Html\DOM\Processors\DOMPPTraverser->run(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\DOM\Element, array, bool)
#23/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(175)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->doPostProcess(Wikimedia\Parsoid\DOM\Element)
#24/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/DOMProcessorPipeline.php(188)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->process(Wikimedia\Parsoid\DOM\Element, array)
#25/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(159)Wikimedia\Parsoid\Wt2Html\DOMProcessorPipeline->processChunkily(Wikimedia\Parsoid\DOM\Element, array)
#26/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(181)Wikimedia\Parsoid\Wt2Html\ParserPipeline->processPipelineStages(array, string, array)
#27/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(622)Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#28/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(192)Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#29/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Parsoid.php(204)Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI, null)
#30/srv/mediawiki/php-1.47.0-wmf.7/vendor/wikimedia/parsoid/src/Parsoid.php(270)Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOutput, array, null)
#31/srv/mediawiki/php-1.47.0-wmf.7/includes/Parser/Parsoid/ParsoidParser.php(151)Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, null, MediaWiki\Parser\ParserOutput)
#32/srv/mediawiki/php-1.47.0-wmf.7/includes/Parser/Parsoid/ParsoidParser.php(317)MediaWiki\Parser\Parsoid\ParsoidParser->genParserOutput(MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\ParserOptions, null)
#33/srv/mediawiki/php-1.47.0-wmf.7/includes/Content/WikitextContentHandler.php(360)MediaWiki\Parser\Parsoid\ParsoidParser->parse(string, MediaWiki\Title\Title, MediaWiki\Parser\ParserOptions, bool, bool, int, null)
#34/srv/mediawiki/php-1.47.0-wmf.7/includes/Content/ContentHandler.php(1574)MediaWiki\Content\WikitextContentHandler->fillParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#35/srv/mediawiki/php-1.47.0-wmf.7/includes/Content/Renderer/ContentRenderer.php(62)MediaWiki\Content\ContentHandler->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#36/srv/mediawiki/php-1.47.0-wmf.7/extensions/FlaggedRevs/includes/backend/FlaggedRevs.php(369)MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Title\Title, MediaWiki\Revision\RevisionStoreRecord, MediaWiki\Parser\ParserOptions)
#37/srv/mediawiki/php-1.47.0-wmf.7/extensions/FlaggedRevs/includes/backend/FlaggedRevs.php(279)FlaggedRevs::parseStableRevision(FlaggedRevision, MediaWiki\Parser\ParserOptions)
#38/srv/mediawiki/php-1.47.0-wmf.7/includes/PoolCounter/PoolCounterWorkViaCallback.php(68)FlaggedRevs::{closure}()
#39/srv/mediawiki/php-1.47.0-wmf.7/includes/PoolCounter/PoolCounterWork.php(159)MediaWiki\PoolCounter\PoolCounterWorkViaCallback->doWork()
#40/srv/mediawiki/php-1.47.0-wmf.7/extensions/FlaggedRevs/includes/backend/FlaggedRevs.php(298)MediaWiki\PoolCounter\PoolCounterWork->execute()
#41/srv/mediawiki/php-1.47.0-wmf.7/extensions/FlaggedRevs/includes/frontend/FlaggablePageView.php(656)FlaggedRevs::parseStableRevisionPooled(FlaggedRevision, MediaWiki\Parser\ParserOptions)
#42/srv/mediawiki/php-1.47.0-wmf.7/extensions/FlaggedRevs/includes/frontend/FlaggablePageView.php(339)FlaggablePageView->showStableVersion(FlaggedRevision, string)
#43/srv/mediawiki/php-1.47.0-wmf.7/extensions/FlaggedRevs/includes/frontend/FlaggedRevsUIHooks.php(288)FlaggablePageView->setPageContent(null, bool)
#44/srv/mediawiki/php-1.47.0-wmf.7/includes/HookContainer/HookContainer.php(127)FlaggedRevsUIHooks->onArticleViewHeader(MediaWiki\Page\Article, null, bool)
#45/srv/mediawiki/php-1.47.0-wmf.7/includes/HookContainer/HookRunner.php(897)MediaWiki\HookContainer\HookContainer->run(string, array)
#46/srv/mediawiki/php-1.47.0-wmf.7/includes/Page/Article.php(706)MediaWiki\HookContainer\HookRunner->onArticleViewHeader(MediaWiki\Page\Article, null, bool)
#47/srv/mediawiki/php-1.47.0-wmf.7/includes/Page/Article.php(546)MediaWiki\Page\Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#48/srv/mediawiki/php-1.47.0-wmf.7/includes/Actions/ViewAction.php(71)MediaWiki\Page\Article->view()
#49/srv/mediawiki/php-1.47.0-wmf.7/includes/Actions/ActionEntryPoint.php(753)MediaWiki\Actions\ViewAction->show()
#50/srv/mediawiki/php-1.47.0-wmf.7/includes/Actions/ActionEntryPoint.php(511)MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#51/srv/mediawiki/php-1.47.0-wmf.7/includes/Actions/ActionEntryPoint.php(145)MediaWiki\Actions\ActionEntryPoint->performRequest()
#52/srv/mediawiki/php-1.47.0-wmf.7/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#53/srv/mediawiki/php-1.47.0-wmf.7/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#54/srv/mediawiki/w/index.php(3)require(string)
#55{main}
Impact
Notes

https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%AC%D9%85%D8%A8%D8%A7%D8%B2_%D9%81%D9%8A_%D8%A7%D9%84%D8%A3%D9%84%D8%B9%D8%A7%D8%A8_%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9?useparsoid=0 renders fine

Details

Request URL
https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%AC%D9%85%D8%A8%D8%A7%D8%B2_%D9%81%D9%8A_%D8%AF%D9%88%D8%B1%D8%A9_%D8%A7%D9%84%D8%A3%D9%84%D8%B9%D8%A7%D8%A8_%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9
Related Changes in Gerrit:

Event Timeline

On kowiki, here is a minimal test case that reproduces the issue locally:

{{선거결과 표|독일의회 선거, 1980}}
|bgcolor ={{정당색/독일|GRÜNE|색1}} |
|}

Bisecting shows that the kowiki snippet was broken by https://gerrit.wikimedia.org/r/c/mediawiki/services/parsoid/+/1266862. The pnbwiki & ruwiki titles also render fine before that patch. So, need to debug the breakage from that patch.

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

[mediawiki/services/parsoid@master] WIP: Add missing 'inTemplate' flag to pipeline construction

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

Change #1306142 merged by jenkins-bot:

[mediawiki/services/parsoid@master] TableFixups: Add missing 'inTemplate' flag to pipeline construction

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

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

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

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

Change #1307003 merged by jenkins-bot:

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

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

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

[mediawiki/vendor@wmf/1.47.0-wmf.9] Bump wikimedia/parsoid to 0.24.0-a14

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

Change #1307059 merged by jenkins-bot:

[mediawiki/vendor@wmf/1.47.0-wmf.9] Bump wikimedia/parsoid to 0.24.0-a14

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

Mentioned in SAL (#wikimedia-operations) [2026-07-02T08:13:59Z] <cscott@deploy1003> Started scap sync-world: Backport for [[gerrit:1307059|Bump wikimedia/parsoid to 0.24.0-a14 (T387374 T430186 T430367 T430501)]], [[gerrit:1307061|Bump wikimedia/parsoid to 0.24.0-a14 (T430501)]]

Mentioned in SAL (#wikimedia-operations) [2026-07-02T08:16:04Z] <cscott@deploy1003> cscott: Backport for [[gerrit:1307059|Bump wikimedia/parsoid to 0.24.0-a14 (T387374 T430186 T430367 T430501)]], [[gerrit:1307061|Bump wikimedia/parsoid to 0.24.0-a14 (T430501)]] 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:25:44Z] <cscott@deploy1003> Finished scap sync-world: Backport for [[gerrit:1307059|Bump wikimedia/parsoid to 0.24.0-a14 (T387374 T430186 T430367 T430501)]], [[gerrit:1307061|Bump wikimedia/parsoid to 0.24.0-a14 (T430501)]] (duration: 11m 44s)

  1. utf-8 errors went from about 1 every 3 mins to ~zero for now. There will be other utf-8 errors that will pop up, but this version of the bug is fixed.