Page MenuHomePhabricator

Error: Cannot use object of type stdClass as array
Closed, ResolvedPublic1 Estimated Story PointsPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   Error: Cannot use object of type stdClass as array
exception.trace
from /srv/mediawiki/php-1.40.0-wmf.3/extensions/Kartographer/includes/Tag/TagHandler.php(429)
#0 /srv/mediawiki/php-1.40.0-wmf.3/extensions/Kartographer/includes/Tag/TagHandler.php(411): Kartographer\Tag\TagHandler->getJSONValidatorLog(array)
#1 /srv/mediawiki/php-1.40.0-wmf.3/extensions/Kartographer/includes/Tag/TagHandler.php(134): Kartographer\Tag\TagHandler->reportError()
#2 /srv/mediawiki/php-1.40.0-wmf.3/extensions/Kartographer/includes/Tag/TagHandler.php(104): Kartographer\Tag\TagHandler->handle(string, array, Parser, PPFrame_Hash)
#3 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/Parser.php(4012): Kartographer\Tag\TagHandler::entryPoint(string, array, Parser, PPFrame_Hash)
#4 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/PPFrame_Hash.php(354): Parser->extensionSubstitution(array, PPFrame_Hash, boolean)
#5 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/Parser.php(2944): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#6 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/Parser.php(1599): Parser->replaceVariables(string)
#7 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/Parser.php(871): Parser->internalParse(string, boolean, boolean)
#8 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/Parser.php(920): Parser->recursiveTagParse(string)
#9 /srv/mediawiki/php-1.40.0-wmf.3/includes/parser/Parsoid/Config/DataAccess.php(355): Parser->parseExtensionTagAsTopLevelDoc(string)
#10 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php(138): MediaWiki\Parser\Parsoid\Config\DataAccess->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOutput, string)
#11 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/ExtensionHandler.php(279): Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler->onExtension(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#12 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(150): Wikimedia\Parsoid\Wt2Html\TT\ExtensionHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#13 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(132): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array)
#14 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(185): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#15 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(140): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->process(array, array)
#16 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/PipelineUtils.php(106): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parse(string, array)
#17 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(617): Wikimedia\Parsoid\Utils\PipelineUtils::processContentInPipeline(Wikimedia\Parsoid\Config\Env, Wikimedia\Parsoid\Wt2Html\PageConfigFrame, string, array)
#18 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1121): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->processTemplateSource(Wikimedia\Parsoid\Tokens\SelfclosingTagTk, array, string)
#19 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1151): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->expandTemplate(Wikimedia\Parsoid\Wt2Html\TT\TemplateEncapsulator)
#20 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1196): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTemplate(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#21 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(150): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
#22 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(132): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array)
#23 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(195): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
#24 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(193): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#25 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/TreeBuilder/TreeBuilderStage.php(487): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
#26 [internal function]: Wikimedia\Parsoid\Wt2Html\TreeBuilder\TreeBuilderStage->processChunkily(string, array)
#27 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(904): Generator->current()
#28 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(180): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
#29 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(308): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
#30 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Wikitext/ContentModelHandler.php(123): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
#31 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Parsoid.php(172): Wikimedia\Parsoid\Wikitext\ContentModelHandler->toDOM(Wikimedia\Parsoid\Ext\ParsoidExtensionAPI)
#32 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/src/Parsoid.php(210): Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOutput, array)
#33 /srv/mediawiki/php-1.40.0-wmf.3/includes/Rest/Handler/ParsoidHandler.php(768): Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, NULL, ParserOutput)
#34 /srv/mediawiki/php-1.40.0-wmf.3/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(92): MediaWiki\Rest\Handler\ParsoidHandler->wt2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array)
#35 /srv/mediawiki/php-1.40.0-wmf.3/includes/Rest/Router.php(487): MWParsoid\Rest\Handler\PageHandler->execute()
#36 /srv/mediawiki/php-1.40.0-wmf.3/includes/Rest/Router.php(406): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
#37 /srv/mediawiki/php-1.40.0-wmf.3/includes/Rest/EntryPoint.php(170): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
#38 /srv/mediawiki/php-1.40.0-wmf.3/includes/Rest/EntryPoint.php(135): MediaWiki\Rest\EntryPoint->execute()
#39 /srv/mediawiki/php-1.40.0-wmf.3/rest.php(31): MediaWiki\Rest\EntryPoint::main()
#40 /srv/mediawiki/w/rest.php(3): require(string)
#41 {main}
Impact
Notes

Details

Request URL
https://fa.wikipedia.org/w/rest.php/fa.wikipedia.org/v3/page/pagebundle/%D8%A2%D8%AA%D8%B4%E2%80%8C%D8%B3%D9%88%D8%B2%DB%8C_%D9%88_%D8%A7%D9%86%D9%81%D8%AC%D8%A7%D8%B1_%DB%B2%DB%B0%DB%B2%DB%B2_%D8%B3%DB%8C%D8%AA%D8%A7%DA%A9%D9%88%D9%86%D8%AF%D8%A7/35469553

Event Timeline

ssastry created this task.
Pikne added a subscriber: Rtnf.
Pikne subscribed.

Per merged task steps to reproduce is to submit/preview mapframe tag without width/height attributes. I remember that earlier an error message was displayed in place of mapframe tag in this case. Does this relate to recent work on Kartographer's error handling?

Do these attributes need to be mandatory anyway? Couldn't width and height perhaps both default to e.g. default user option for thumbnail image width? In other aspects mapframe already seems similar to thumbnail images (by default is aligned right and has frame, uses thumb class and other related classes).

Change 839463 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Kartographer@master] Fix error reporting mistaken array of GeoJSON as array of errors

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

Change 839470 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Kartographer@master] Non-ambiguous distinction between GeoJSON array and error list

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

Change 839463 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] Fix error reporting mistaken array of GeoJSON as array of errors

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

Change 839470 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] Non-ambiguous distinction between GeoJSON array and error list

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