Page MenuHomePhabricator

TypeError: Return value of MediaWiki\Extension\DiscussionTools\Hooks\HookUtils::isFeatureAvailableToUser() must be of the type boolean, null returned
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   TypeError: Return value of MediaWiki\Extension\DiscussionTools\Hooks\HookUtils::isFeatureAvailableToUser() must be of the type boolean, null returned
exception.trace
from /srv/mediawiki/php-1.38.0-wmf.7/extensions/DiscussionTools/includes/Hooks/HookUtils.php(85)
#0 /srv/mediawiki/php-1.38.0-wmf.7/extensions/DiscussionTools/includes/Hooks/PreferenceHooks.php(42): MediaWiki\Extension\DiscussionTools\Hooks\HookUtils::isFeatureAvailableToUser(User)
#1 /srv/mediawiki/php-1.38.0-wmf.7/includes/HookContainer/HookContainer.php(160): MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks->onGetPreferences(User, array)
#2 /srv/mediawiki/php-1.38.0-wmf.7/includes/HookContainer/HookRunner.php(1909): MediaWiki\HookContainer\HookContainer->run(string, array)
#3 /srv/mediawiki/php-1.38.0-wmf.7/includes/preferences/DefaultPreferencesFactory.php(248): MediaWiki\HookContainer\HookRunner->onGetPreferences(User, array)
#4 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GlobalPreferences/includes/GlobalPreferencesFactory.php(117): MediaWiki\Preferences\DefaultPreferencesFactory->getFormDescriptor(User, DerivativeContext)
#5 /srv/mediawiki/php-1.38.0-wmf.7/includes/api/ApiOptions.php(207): GlobalPreferences\GlobalPreferencesFactory->getFormDescriptor(User, DerivativeContext)
#6 /srv/mediawiki/php-1.38.0-wmf.7/includes/api/ApiOptions.php(114): ApiOptions->getPreferences()
#7 /srv/mediawiki/php-1.38.0-wmf.7/includes/api/ApiMain.php(1888): ApiOptions->execute()
#8 /srv/mediawiki/php-1.38.0-wmf.7/includes/api/ApiMain.php(867): ApiMain->executeAction()
#9 /srv/mediawiki/php-1.38.0-wmf.7/includes/api/ApiMain.php(838): ApiMain->executeActionWithErrorHandling()
#10 /srv/mediawiki/php-1.38.0-wmf.7/api.php(90): ApiMain->execute()
#11 /srv/mediawiki/php-1.38.0-wmf.7/api.php(45): wfApiMain()
#12 /srv/mediawiki/w/api.php(3): require(string)
#13 {main}
Impact
Notes

Happened after I submitted the following API request:

{
	"action": "options",
	"format": "json",
	"reset": 1,
	"optionname": "nickname",
	"token": "redacted"
}

Note I'm a heavy user of global preferences. Not sure where this bug is (if MediaWiki-extensions-GlobalPreferences or DiscussionTools), but since the exception appears to come from DiscussionTools, tagging with #dicussiontools for now.

Details

Request URL
https://meta.wikimedia.org/w/api.php
Related Changes in Gerrit:

Event Timeline

Change 740658 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):

[mediawiki/extensions/DiscussionTools@master] Cast 'discussiontools-betaenable' preference to bool

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

This link doesn't work for me, however I found it when searching manually: https://logstash.wikimedia.org/goto/26ef5e05c67ca45b49f6f182c8fbd87b

…and there's exactly one result, which must be you, so I'm not too concerned about users being affected.

It makes sense to fix it though.

Change 740658 merged by jenkins-bot:

[mediawiki/extensions/DiscussionTools@master] Cast 'discussiontools-betaenable' preference to bool

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