Page MenuHomePhabricator

GrowthExperiments: Unexpected call to ConfigurationLoader::getTaskTypes when feature is disabled)
Closed, ResolvedPublic1 Estimated Story PointsPRODUCTION ERROR

Description

Error
from /srv/mediawiki/php-1.45.0-wmf.24/extensions/GrowthExperiments/includes/NewcomerTasks/ConfigurationLoader/ErrorForwardingConfigurationLoader.php(68)
#0 /srv/mediawiki/php-1.45.0-wmf.24/extensions/GrowthExperiments/includes/HomepageHooks.php(1292): GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader->getTaskTypes()
#1 /srv/mediawiki/php-1.45.0-wmf.24/includes/HookContainer/HookContainer.php(141): GrowthExperiments\HomepageHooks::onCirrusSearchAddQueryFeatures(CirrusSearch\SearchConfig, array)
#2 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/CirrusSearchHookRunner.php(38): MediaWiki\HookContainer\HookContainer->run(string, array, array)
#3 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/Parser/FullTextKeywordRegistry.php(103): CirrusSearch\CirrusSearchHookRunner->onCirrusSearchAddQueryFeatures(CirrusSearch\SearchConfig, array)
#4 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/Searcher.php(321): CirrusSearch\Parser\FullTextKeywordRegistry->__construct(CirrusSearch\SearchConfig)
#5 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/Searcher.php(353): CirrusSearch\Searcher->buildFullTextSearch(string)
#6 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/Searcher.php(232): CirrusSearch\Searcher->searchTextInternal(string)
#7 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/CirrusSearch.php(307): CirrusSearch\Searcher->search(CirrusSearch\Search\SearchQuery)
#8 /srv/mediawiki/php-1.45.0-wmf.24/extensions/CirrusSearch/includes/CirrusSearch.php(280): CirrusSearch\CirrusSearch->searchTextReal(CirrusSearch\Search\SearchQuery)
#9 /srv/mediawiki/php-1.45.0-wmf.24/includes/search/SearchEngine.php(91): CirrusSearch\CirrusSearch->doSearchText(string)
#10 /srv/mediawiki/php-1.45.0-wmf.24/includes/search/SearchEngine.php(183): SearchEngine->{closure}()
#11 /srv/mediawiki/php-1.45.0-wmf.24/includes/search/SearchEngine.php(92): SearchEngine->maybePaginate(Closure)
#12 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiQuerySearch.php(102): SearchEngine->searchText(string)
#13 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiQuerySearch.php(52): MediaWiki\Api\ApiQuerySearch->run(MediaWiki\Api\ApiPageSet)
#14 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiPageSet.php(274): MediaWiki\Api\ApiQuerySearch->executeGenerator(MediaWiki\Api\ApiPageSet)
#15 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiPageSet.php(237): MediaWiki\Api\ApiPageSet->executeInternal(bool)
#16 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiQuery.php(709): MediaWiki\Api\ApiPageSet->execute()
#17 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiMain.php(2038): MediaWiki\Api\ApiQuery->execute()
#18 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiMain.php(946): MediaWiki\Api\ApiMain->executeAction()
#19 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiMain.php(917): MediaWiki\Api\ApiMain->executeActionWithErrorHandling()
#20 /srv/mediawiki/php-1.45.0-wmf.24/includes/api/ApiEntryPoint.php(138): MediaWiki\Api\ApiMain->execute()
#21 /srv/mediawiki/php-1.45.0-wmf.24/includes/MediaWikiEntryPoint.php(184): MediaWiki\Api\ApiEntryPoint->execute()
#22 /srv/mediawiki/php-1.45.0-wmf.24/api.php(30): MediaWiki\MediaWikiEntryPoint->run()
#23 /srv/mediawiki/w/api.php(3): require(string)
#24 {main}
Impact

Log noise; CirrusSearch integration should not access Suggested Edits configuration when the feature is disabled.

Notes

Cause

  • CirrusSearch hook HomepageHooks::onCirrusSearchAddQueryFeatures called getTaskTypes() unconditionally.

Acceptance criteria

  • No more Logstash warnings from ErrorForwardingConfigurationLoader->getTaskTypes via CirrusSearch when Suggested Edits is disabled.

Event Timeline

Cyndymediawiksim changed the task status from Open to In Progress.
Cyndymediawiksim triaged this task as High priority.

Change #1199244 had a related patch set uploaded (by Cyndywikime; author: Cyndywikime):

[mediawiki/extensions/GrowthExperiments@master] Avoid accessing Suggested Edits configuration when the feature is disabled

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

There is another one in \GrowthExperiments\LevelingUp\LevelingUpHooks::onVisualEditorApiVisualEditorEditPostSave, see https://logstash.wikimedia.org/goto/d98669fabe9b88d7f732e42d3dca2a19

Change #1201746 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/GrowthExperiments@master] fix: don't access disabled Suggested Edits config in VE hook

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

Change #1202065 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/GrowthExperiments@master] fix: don't run listTaskCounts if Newcomer Task are not available

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

Change #1199244 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] fix: don't access disabled Suggested Edits in Cirrus query feature hook

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

Change #1201746 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] fix: don't access disabled Suggested Edits config in VE hook

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

Change #1202065 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] fix: don't run listTaskCounts if Newcomer Task are not available

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

These changes should resolve the error listed here and in T408531. They will arrive at frwiktionary with the train on November 12th. After that we can check in logstash if there any remaining errors with "Unexpected call to ConfigurationLoader::getTaskTypes when feature is disabled" are to be found on that wiki.

Change #1204084 had a related patch set uploaded (by Reedy; author: Michael Große):

[mediawiki/extensions/GrowthExperiments@wmf/1.46.0-wmf.1] fix: don't run listTaskCounts if Newcomer Task are not available

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

Change #1204084 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@wmf/1.46.0-wmf.1] fix: don't run listTaskCounts if Newcomer Task are not available

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

Mentioned in SAL (#wikimedia-operations) [2025-11-11T20:52:31Z] <reedy@deploy2002> Started scap sync-world: Backport for [[gerrit:1204084|fix: don't run listTaskCounts if Newcomer Task are not available (T408052 T408531)]]

Mentioned in SAL (#wikimedia-operations) [2025-11-11T20:54:43Z] <reedy@deploy2002> reedy: Backport for [[gerrit:1204084|fix: don't run listTaskCounts if Newcomer Task are not available (T408052 T408531)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-11-11T20:59:27Z] <reedy@deploy2002> Finished scap sync-world: Backport for [[gerrit:1204084|fix: don't run listTaskCounts if Newcomer Task are not available (T408052 T408531)]] (duration: 06m 57s)

We still have not everything fixed. Even with wmf.4 I can trigger more errors from this by going to https://fr.wiktionary.org/wiki/Sp%C3%A9cial:NewcomerTasksInfo

I see three different errors:

Unexpected call to ConfigurationLoader::loadTaskTypes when feature is disabled. Called from: GrowthExperiments\NewcomerTasks\SuggestionsInfo::getInfo.

from /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/ConfigurationLoader/ErrorForwardingConfigurationLoader.php(52)
#0 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/SuggestionsInfo.php(52): GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader->loadTaskTypes()
#1 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/CachedSuggestionsInfo.php(39): GrowthExperiments\NewcomerTasks\SuggestionsInfo->getInfo()
#2 /srv/mediawiki/php-1.46.0-wmf.4/includes/libs/ObjectCache/WANObjectCache.php(1825): GrowthExperiments\NewcomerTasks\CachedSuggestionsInfo->GrowthExperiments\NewcomerTasks\{closure}(bool, int, array, null, array)
#3 /srv/mediawiki/php-1.46.0-wmf.4/includes/libs/ObjectCache/WANObjectCache.php(1635): Wikimedia\ObjectCache\WANObjectCache->fetchOrRegenerate(string, int, Closure, array, array)
#4 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/CachedSuggestionsInfo.php(35): Wikimedia\ObjectCache\WANObjectCache->getWithSetCallback(string, int, Closure, array)
#5 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/Specials/SpecialNewcomerTasksInfo.php(27): GrowthExperiments\NewcomerTasks\CachedSuggestionsInfo->getInfo()
#6 /srv/mediawiki/php-1.46.0-wmf.4/includes/SpecialPage/SpecialPage.php(711): GrowthExperiments\Specials\SpecialNewcomerTasksInfo->execute(null)
#7 /srv/mediawiki/php-1.46.0-wmf.4/includes/SpecialPage/SpecialPageFactory.php(1743): MediaWiki\SpecialPage\SpecialPage->run(null)
#8 /srv/mediawiki/php-1.46.0-wmf.4/includes/Actions/ActionEntryPoint.php(499): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#9 /srv/mediawiki/php-1.46.0-wmf.4/includes/Actions/ActionEntryPoint.php(143): MediaWiki\Actions\ActionEntryPoint->performRequest()
#10 /srv/mediawiki/php-1.46.0-wmf.4/includes/MediaWikiEntryPoint.php(184): MediaWiki\Actions\ActionEntryPoint->execute()
#11 /srv/mediawiki/php-1.46.0-wmf.4/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#12 /srv/mediawiki/w/index.php(3): require(string)
#13 {main}
Unexpected call to ConfigurationLoader::loadTaskTypes when feature is disabled. Called from: GrowthExperiments\NewcomerTasks\TaskSuggester\LocalSearchTaskSuggesterFactory::create.

from /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/ConfigurationLoader/ErrorForwardingConfigurationLoader.php(52)
#0 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/TaskSuggester/LocalSearchTaskSuggesterFactory.php(65): GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader->loadTaskTypes()
#1 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/TaskSuggester/DecoratingTaskSuggesterFactory.php(54): GrowthExperiments\NewcomerTasks\TaskSuggester\LocalSearchTaskSuggesterFactory->create(GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader)
#2 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/SuggestionsInfo.php(51): GrowthExperiments\NewcomerTasks\TaskSuggester\DecoratingTaskSuggesterFactory->create(GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader)
#3 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/CachedSuggestionsInfo.php(39): GrowthExperiments\NewcomerTasks\SuggestionsInfo->getInfo()
#4 /srv/mediawiki/php-1.46.0-wmf.4/includes/libs/ObjectCache/WANObjectCache.php(1825): GrowthExperiments\NewcomerTasks\CachedSuggestionsInfo->GrowthExperiments\NewcomerTasks\{closure}(bool, int, array, null, array)
#5 /srv/mediawiki/php-1.46.0-wmf.4/includes/libs/ObjectCache/WANObjectCache.php(1635): Wikimedia\ObjectCache\WANObjectCache->fetchOrRegenerate(string, int, Closure, array, array)
#6 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/CachedSuggestionsInfo.php(35): Wikimedia\ObjectCache\WANObjectCache->getWithSetCallback(string, int, Closure, array)
#7 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/Specials/SpecialNewcomerTasksInfo.php(27): GrowthExperiments\NewcomerTasks\CachedSuggestionsInfo->getInfo()
#8 /srv/mediawiki/php-1.46.0-wmf.4/includes/SpecialPage/SpecialPage.php(711): GrowthExperiments\Specials\SpecialNewcomerTasksInfo->execute(null)
#9 /srv/mediawiki/php-1.46.0-wmf.4/includes/SpecialPage/SpecialPageFactory.php(1743): MediaWiki\SpecialPage\SpecialPage->run(null)
#10 /srv/mediawiki/php-1.46.0-wmf.4/includes/Actions/ActionEntryPoint.php(499): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#11 /srv/mediawiki/php-1.46.0-wmf.4/includes/Actions/ActionEntryPoint.php(143): MediaWiki\Actions\ActionEntryPoint->performRequest()
#12 /srv/mediawiki/php-1.46.0-wmf.4/includes/MediaWikiEntryPoint.php(184): MediaWiki\Actions\ActionEntryPoint->execute()
#13 /srv/mediawiki/php-1.46.0-wmf.4/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#14 /srv/mediawiki/w/index.php(3): require(string)
#15 {main}
Task types are unavailable because Suggested edits is not enabled, see GEHomepageSuggestedEditsEnabled.
	
from /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/TaskSuggester/TaskSuggesterFactory.php(31)
#0 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/TaskSuggester/LocalSearchTaskSuggesterFactory.php(67): GrowthExperiments\NewcomerTasks\TaskSuggester\TaskSuggesterFactory->createError(StatusValue)
#1 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/TaskSuggester/DecoratingTaskSuggesterFactory.php(54): GrowthExperiments\NewcomerTasks\TaskSuggester\LocalSearchTaskSuggesterFactory->create(GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader)
#2 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/SuggestionsInfo.php(51): GrowthExperiments\NewcomerTasks\TaskSuggester\DecoratingTaskSuggesterFactory->create(GrowthExperiments\NewcomerTasks\ConfigurationLoader\ErrorForwardingConfigurationLoader)
#3 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/CachedSuggestionsInfo.php(39): GrowthExperiments\NewcomerTasks\SuggestionsInfo->getInfo()
#4 /srv/mediawiki/php-1.46.0-wmf.4/includes/libs/ObjectCache/WANObjectCache.php(1825): GrowthExperiments\NewcomerTasks\CachedSuggestionsInfo->GrowthExperiments\NewcomerTasks\{closure}(bool, int, array, null, array)
#5 /srv/mediawiki/php-1.46.0-wmf.4/includes/libs/ObjectCache/WANObjectCache.php(1635): Wikimedia\ObjectCache\WANObjectCache->fetchOrRegenerate(string, int, Closure, array, array)
#6 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/NewcomerTasks/CachedSuggestionsInfo.php(35): Wikimedia\ObjectCache\WANObjectCache->getWithSetCallback(string, int, Closure, array)
#7 /srv/mediawiki/php-1.46.0-wmf.4/extensions/GrowthExperiments/includes/Specials/SpecialNewcomerTasksInfo.php(27): GrowthExperiments\NewcomerTasks\CachedSuggestionsInfo->getInfo()
#8 /srv/mediawiki/php-1.46.0-wmf.4/includes/SpecialPage/SpecialPage.php(711): GrowthExperiments\Specials\SpecialNewcomerTasksInfo->execute(null)
#9 /srv/mediawiki/php-1.46.0-wmf.4/includes/SpecialPage/SpecialPageFactory.php(1743): MediaWiki\SpecialPage\SpecialPage->run(null)
#10 /srv/mediawiki/php-1.46.0-wmf.4/includes/Actions/ActionEntryPoint.php(499): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext)
#11 /srv/mediawiki/php-1.46.0-wmf.4/includes/Actions/ActionEntryPoint.php(143): MediaWiki\Actions\ActionEntryPoint->performRequest()
#12 /srv/mediawiki/php-1.46.0-wmf.4/includes/MediaWikiEntryPoint.php(184): MediaWiki\Actions\ActionEntryPoint->execute()
#13 /srv/mediawiki/php-1.46.0-wmf.4/index.php(44): MediaWiki\MediaWikiEntryPoint->run()
#14 /srv/mediawiki/w/index.php(3): require(string)
#15 {main}

I don't think the page makes much sense if SE are not enabled. Would it be fine to conditionally register it?

I don't think the page makes much sense if SE are not enabled. Would it be fine to conditionally register it?

I'd prefer if we returned an error rather than a plain "page not found". This is to avoid user confusion if they follow a link or something. Whether we do that by erroring-out in SpecialNewcomerTasksInfo::execute (and dealing with the dependencies), or whether we create SpecialNewcomerTasksInfo_Unavailable and conditionally register either SpecialNewcomerTasksInfo or SpecialNewcomerTasksInfo_Unavailable, I don't have a strong preference on.

FWIW, this is how we once handled Special:EditGrowthConfig (we either registered the actual implementation, or a placeholder that just redirected you to Special:CommunityConfiguration).

Would this make sense?

Michael moved this task from Incoming to Doing on the Growth-Team (FY2025-26 Q2 Sprint 4) board.

Let's go for exiting early in SpecialNewcomerTasksInfo::execute, that is simplest.

Change #1214028 had a related patch set uploaded (by Michael Große; author: Michael Große):

[mediawiki/extensions/GrowthExperiments@master] fix: don't try to show data on NewcomerTasksInfo if they are disabled

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

Urbanecm_WMF changed the task status from In Progress to Open.Dec 3 2025, 2:52 PM
Urbanecm_WMF moved this task from Code Review to QA on the Growth-Team (FY2025-26 Q2 Sprint 5) board.

Change #1214028 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] fix: don't try to show data on NewcomerTasksInfo if they are disabled

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

Etonkovidova subscribed.

The warning seems to be exclusively on `frwiktionary.

The errors stopped -the last timestamp - Dec 5, 2025 @ 23:00:26.889 - https://logstash.wikimedia.org/goto/4b5dfe625d6e3f8476f8399234658ae1