Page MenuHomePhabricator

PHP Warning: strtolower() expects parameter 1 to be string, object given
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
labels.normalized_message
[{reqId}] {exception_url}   PHP Warning: strtolower() expects parameter 1 to be string, object given
error.stack_trace
from /srv/mediawiki/php-1.41.0-wmf.4/extensions/CategoryTree/includes/CategoryTree.php(201)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /srv/mediawiki/php-1.41.0-wmf.4/extensions/CategoryTree/includes/CategoryTree.php(201): strtolower(stdClass)
#2 /srv/mediawiki/php-1.41.0-wmf.4/extensions/CategoryTree/includes/CategoryTree.php(73): MediaWiki\Extension\CategoryTree\CategoryTree::decodeBoolean(stdClass)
#3 /srv/mediawiki/php-1.41.0-wmf.4/extensions/CategoryTree/includes/ApiCategoryTree.php(83): MediaWiki\Extension\CategoryTree\CategoryTree->__construct(array)
#4 /srv/mediawiki/php-1.41.0-wmf.4/includes/api/ApiMain.php(1908): MediaWiki\Extension\CategoryTree\ApiCategoryTree->execute()
#5 /srv/mediawiki/php-1.41.0-wmf.4/includes/api/ApiMain.php(884): ApiMain->executeAction()
#6 /srv/mediawiki/php-1.41.0-wmf.4/includes/api/ApiMain.php(855): ApiMain->executeActionWithErrorHandling()
#7 /srv/mediawiki/php-1.41.0-wmf.4/api.php(91): ApiMain->execute()
#8 /srv/mediawiki/php-1.41.0-wmf.4/api.php(46): wfApiMain()
#9 /srv/mediawiki/w/api.php(3): require(string)
#10 {main}
Notes
  • Happens on Group1 & Group2 wikis
  • Easy to recreate via GET request linked from logstash
  • Happening about 1×/day

Details

Request URL
https://en.wikinews.org/w/api.php?action=categorytree&category=*&format=*&formatversion=*&options=*&uselang=*

Event Timeline

Change 910600 had a related patch set uploaded (by Ammarpad; author: Ammarpad):

[mediawiki/extensions/CategoryTree@master] ApiCategoryTree: Disallow nested JSON objects in options parameter

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

The options= of the url would be nice in this case, but it seems some invalid like action=categorytree&category=API&options={"showcount":["array"],"namespaces":{"key":"value"}}

Change 910600 merged by jenkins-bot:

[mediawiki/extensions/CategoryTree@master] ApiCategoryTree: Harden validation of JSON values in options parameter

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