Page MenuHomePhabricator

PHP Deprecated: Use of MediaWiki\Skin\SkinTemplate::injectLegacyMenusIntoPersonalTools was deprecated in Please make sure Skin option menus contains `user-menu` (and possibly `notifications`, `user-interface-preferences`, `user
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
  • service.version: 1.46.0-wmf.15
  • timestamp: 2026-02-10T09:45:23.667Z
  • labels.phpversion: 8.3.30
  • trace.id: 9297e867-840c-4888-b2f5-cf5b35846a95
  • Find trace.id in Logstash
labels.normalized_message
[{reqId}] {exception_url}   PHP Deprecated: Use of MediaWiki\Skin\SkinTemplate::injectLegacyMenusIntoPersonalTools was deprecated in Please make sure Skin option menus contains `user-menu` (and possibly `notifications`, `user-interface-preferences`, `user
FrameLocationCall
from/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(681)
#0[internal function]MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(372)trigger_error(string, int)
#2/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(342)MediaWiki\Debug\MWDebug::sendRawDeprecated(string, bool, string)
#3/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(224)MediaWiki\Debug\MWDebug::deprecatedMsg(string, string, string, int)
#4/srv/mediawiki/php-1.46.0-wmf.15/includes/GlobalFunctions.php(743)MediaWiki\Debug\MWDebug::deprecated(string, string, string, int)
#5/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(1572)wfDeprecated(string, string, string)
#6/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(681)MediaWiki\Skin\SkinTemplate->injectLegacyMenusIntoPersonalTools(array)
#7/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(608)MediaWiki\Skin\SkinTemplate->getPortletsTemplateData()
#8/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/Skin.php(826)MediaWiki\Skin\SkinTemplate->getCategoryLinks()
#9/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(211)MediaWiki\Skin\Skin->getCategories()
#10/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(151)MediaWiki\Skin\SkinTemplate->prepareQuickTemplate()
#11/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(175)MediaWiki\Skin\SkinTemplate->generateHTML()
#12/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/Skin.php(676)MediaWiki\Skin\SkinTemplate->outputPage()
#13/srv/mediawiki/php-1.46.0-wmf.15/includes/Output/OutputPage.php(3307)MediaWiki\Skin\Skin->outputPageFinal(MediaWiki\Output\OutputPage)
#14/srv/mediawiki/php-1.46.0-wmf.15/includes/Actions/ActionEntryPoint.php(161)MediaWiki\Output\OutputPage->output(bool)
#15/srv/mediawiki/php-1.46.0-wmf.15/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#16/srv/mediawiki/php-1.46.0-wmf.15/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#17/srv/mediawiki/w/index.php(3)require(string)
#18{main}
Notes

Constant and significant volume of warnings after deploying 1.45.0-wmf.15 to testwikis/group0. At time of writing it's mostly the API portal that's affected.

Interestingly, the deprecation warning applied already for 1.46 but we're only seeing it now.

Significant volume already on group0, I don't feel comfortable continuing to group1 until this has been triaged/resolved.

Event Timeline

jnuche triaged this task as Unbreak Now! priority.

Another two separated warnings are also generated per request. For the request ID mentioned above we can see the following in the logs:


normalized_message
[{reqId}] {exception_url}   PHP Deprecated: Skins must now pass `menus` key to skin definition in skin.json. Default value is: ['namespaces', 'views', 'actions', 'variants', 'personal']. <br>Menu "personal" is deprecated. Replace with "user-page", "user-i
FrameLocationCall
from/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(608)
#0[internal function]MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(372)trigger_error(string, int)
#2/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(342)MediaWiki\Debug\MWDebug::sendRawDeprecated(string, bool, string)
#3/srv/mediawiki/php-1.46.0-wmf.15/includes/GlobalFunctions.php(767)MediaWiki\Debug\MWDebug::deprecatedMsg(string, string, string, int)
#4/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(673)wfDeprecatedMsg(string, string)
#5/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(608)MediaWiki\Skin\SkinTemplate->getPortletsTemplateData()
#6/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/Skin.php(826)MediaWiki\Skin\SkinTemplate->getCategoryLinks()
#7/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(211)MediaWiki\Skin\Skin->getCategories()
#8/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(151)MediaWiki\Skin\SkinTemplate->prepareQuickTemplate()
#9/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(175)MediaWiki\Skin\SkinTemplate->generateHTML()
#10/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/Skin.php(676)MediaWiki\Skin\SkinTemplate->outputPage()
#11/srv/mediawiki/php-1.46.0-wmf.15/includes/Output/OutputPage.php(3307)MediaWiki\Skin\Skin->outputPageFinal(MediaWiki\Output\OutputPage)
#12/srv/mediawiki/php-1.46.0-wmf.15/includes/Actions/ActionEntryPoint.php(161)MediaWiki\Output\OutputPage->output(bool)
#13/srv/mediawiki/php-1.46.0-wmf.15/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#14/srv/mediawiki/php-1.46.0-wmf.15/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#15/srv/mediawiki/w/index.php(3)require(string)
#16{main}

normalized_message
[{reqId}] {exception_url}   PHP Deprecated: Skins must now pass `menus` key to skin definition in skin.json. Default value is: ['namespaces', 'views', 'actions', 'variants', 'personal']. <br>Menu "namespaces" is deprecated. Please replace with "associated
FrameLocationCall
from/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(608)
#0[internal function]MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(372)trigger_error(string, int)
#2/srv/mediawiki/php-1.46.0-wmf.15/includes/Debug/MWDebug.php(342)MediaWiki\Debug\MWDebug::sendRawDeprecated(string, bool, string)
#3/srv/mediawiki/php-1.46.0-wmf.15/includes/GlobalFunctions.php(767)MediaWiki\Debug\MWDebug::deprecatedMsg(string, string, string, int)
#4/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(665)wfDeprecatedMsg(string, string)
#5/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(608)MediaWiki\Skin\SkinTemplate->getPortletsTemplateData()
#6/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/Skin.php(826)MediaWiki\Skin\SkinTemplate->getCategoryLinks()
#7/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(211)MediaWiki\Skin\Skin->getCategories()
#8/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(151)MediaWiki\Skin\SkinTemplate->prepareQuickTemplate()
#9/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/SkinTemplate.php(175)MediaWiki\Skin\SkinTemplate->generateHTML()
#10/srv/mediawiki/php-1.46.0-wmf.15/includes/Skin/Skin.php(676)MediaWiki\Skin\SkinTemplate->outputPage()
#11/srv/mediawiki/php-1.46.0-wmf.15/includes/Output/OutputPage.php(3307)MediaWiki\Skin\Skin->outputPageFinal(MediaWiki\Output\OutputPage)
#12/srv/mediawiki/php-1.46.0-wmf.15/includes/Actions/ActionEntryPoint.php(161)MediaWiki\Output\OutputPage->output(bool)
#13/srv/mediawiki/php-1.46.0-wmf.15/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#14/srv/mediawiki/php-1.46.0-wmf.15/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#15/srv/mediawiki/w/index.php(3)require(string)
#16{main}

All three of these hits are on the WikimediaApiPortal skin — I imagine that skin was missed in the fixes?

Given the likely hit rate on api.wikimedia.org it's probably OK for this new deprecation to not be a train-blocker, as long as it's fixed swiftly?

jnuche lowered the priority of this task from Unbreak Now! to Needs Triage.Feb 10 2026, 2:06 PM

All three of these hits are on the WikimediaApiPortal skin — I imagine that skin was missed in the fixes?

Given the likely hit rate on api.wikimedia.org it's probably OK for this new deprecation to not be a train-blocker, as long as it's fixed swiftly?

Sounds reasonable, so far all instances of the error have indeed been on the API portal.

I'm cautiously removing it as blocker, but will keep an eye on its error rate tomorrow during the deployment to the next group

Change #1238386 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/WikimediaApiPortal@master] WikimediaApiPortal should declare menus it uses

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

Change #1238386 merged by jenkins-bot:

[mediawiki/skins/WikimediaApiPortal@master] WikimediaApiPortal should declare menus it uses

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

Change #1238679 had a related patch set uploaded (by Jaime Nuche; author: Jdlrobson):

[mediawiki/skins/WikimediaApiPortal@wmf/1.46.0-wmf.15] WikimediaApiPortal should declare menus it uses

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

Change #1238679 merged by Jaime Nuche:

[mediawiki/skins/WikimediaApiPortal@wmf/1.46.0-wmf.15] WikimediaApiPortal should declare menus it uses

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

Mentioned in SAL (#wikimedia-operations) [2026-02-11T09:32:53Z] <jnuche@deploy2002> Started scap sync-world: Backport for [[gerrit:1238679|WikimediaApiPortal should declare menus it uses (T416981)]]

Mentioned in SAL (#wikimedia-operations) [2026-02-11T09:35:13Z] <jnuche@deploy2002> jnuche: Backport for [[gerrit:1238679|WikimediaApiPortal should declare menus it uses (T416981)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-02-11T09:39:48Z] <jnuche@deploy2002> Finished scap sync-world: Backport for [[gerrit:1238679|WikimediaApiPortal should declare menus it uses (T416981)]] (duration: 06m 55s)

Errors shot up after deploying the train to group1. 3K+ in 15m:

image.png (559×932 px, 75 KB)

Culprit is nostalgia.wikipedia.org:

image.png (199×354 px, 14 KB)


I have no intuitive idea of how big the impact on logstash will by at these logging rates, but they feel pretty high to me for a single change (the concern being here to keep accumulating higher error rates in individual changes and kill logstash via a thousand cuts). I'm erring on the side of caution and rolling back the train

jnuche raised the priority of this task from Medium to Unbreak Now!.Feb 11 2026, 9:41 AM

Unsurprisingly Nostalgia is very much unsupported. I'm pinging the most "recent" (talking about months here) commiters to the repo in case they think they can help: @Reedy @matmarex @Umherirrender

If that's not the case, apologies in advance for the noise, folks

Change #1238706 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/skins/Nostalgia@master] Add 'menus' option to skin.json

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

Change #1238706 merged by jenkins-bot:

[mediawiki/skins/Nostalgia@master] Add 'menus' option to skin.json

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

Change #1238716 had a related patch set uploaded (by Jaime Nuche; author: Gergő Tisza):

[mediawiki/skins/Nostalgia@wmf/1.46.0-wmf.15] Add 'menus' option to skin.json

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

Change #1238716 merged by jenkins-bot:

[mediawiki/skins/Nostalgia@wmf/1.46.0-wmf.15] Add 'menus' option to skin.json

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

Mentioned in SAL (#wikimedia-operations) [2026-02-11T14:01:15Z] <jnuche@deploy2002> Started scap sync-world: Backport for [[gerrit:1238716|Add 'menus' option to skin.json (T416981)]]

Mentioned in SAL (#wikimedia-operations) [2026-02-11T14:09:50Z] <jnuche@deploy2002> Started scap sync-world: Backport for [[gerrit:1238716|Add 'menus' option to skin.json (T416981)]]

Mentioned in SAL (#wikimedia-operations) [2026-02-11T14:15:13Z] <jnuche@deploy2002> jnuche: Backport for [[gerrit:1238716|Add 'menus' option to skin.json (T416981)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-02-11T14:19:52Z] <jnuche@deploy2002> Finished scap sync-world: Backport for [[gerrit:1238716|Add 'menus' option to skin.json (T416981)]] (duration: 10m 02s)

jnuche lowered the priority of this task from Unbreak Now! to Medium.Feb 11 2026, 3:13 PM
jnuche added a subscriber: Tgr.

Noise from Nostalgia is gone. Thank you to @Tgr for his patch.

We'll see what happens tomorrow on group2 I guess

There should be no skins in group 2 that are not in group 1 or 0. I'm fairly confident you should be fine tomorrow. Thanks @Tgr for taking care of the Nostalgia issue.

I took another pass through https://codesearch.wmcloud.org/deployed/?q=%5C%5B%27namespaces%27%5C%5D&files=&excludeFiles= and I don't see any code that would trigger new unresolved warnings. It's been hard to catch all the ones so far because it's hard to grep for 'namespaces' in the context of just skins since namespaces are used everywhere with other meanings!

Change #1238852 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Nostalgia@master] Clear unused menus in Nostalgia

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

There should be no skins in group 2 that are not in group 1 or 0. I'm fairly confident you should be fine tomorrow. Thanks @Tgr for taking care of the Nostalgia issue.

I took another pass through https://codesearch.wmcloud.org/deployed/?q=%5C%5B%27namespaces%27%5C%5D&files=&excludeFiles= and I don't see any code that would trigger new unresolved warnings. It's been hard to catch all the ones so far because it's hard to grep for 'namespaces' in the context of just skins since namespaces are used everywhere with other meanings!

Thanks @Jdlrobson-WMF! I can confirm now new logs for group2 :)

Change #1238852 merged by jenkins-bot:

[mediawiki/skins/Nostalgia@master] Clear unused menus in Nostalgia

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