Page MenuHomePhabricator

EventFormatter::formatAddress(): Argument #3 ($noAddressMsg) must be of type ?string, MediaWiki\Message\Message given in RegistrationNotificationPresentationModel
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
message
Deferred update 'MediaWiki\Deferred\MWCallableUpdate_MediaWiki\Extension\CampaignEvents\Notifications\UserNotifier->notifyRegistration' failed to run.

MediaWiki\Extension\CampaignEvents\Formatters\EventFormatter::formatAddress(): Argument #3 ($noAddressMsg) must be of type ?string, MediaWiki\Message\Message given, called in /srv/mediawiki/php-1.45.0-wmf.12/extensions/CampaignEvents/src/Notifications/RegistrationNotificationPresentationModel.php on line 216
trace
	from /srv/mediawiki/php-1.45.0-wmf.12/extensions/CampaignEvents/src/Formatters/EventFormatter.php(85)
#0 /srv/mediawiki/php-1.45.0-wmf.12/extensions/CampaignEvents/src/Notifications/RegistrationNotificationPresentationModel.php(216): MediaWiki\Extension\CampaignEvents\Formatters\EventFormatter->formatAddress(MediaWiki\Extension\CampaignEvents\Address\Address, string, MediaWiki\Message\Message)
#1 /srv/mediawiki/php-1.45.0-wmf.12/extensions/CampaignEvents/src/Notifications/RegistrationNotificationPresentationModel.php(133): MediaWiki\Extension\CampaignEvents\Notifications\RegistrationNotificationPresentationModel->getTypeBodySection()
#2 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Formatters/EchoPlainTextEmailFormatter.php(18): MediaWiki\Extension\CampaignEvents\Notifications\RegistrationNotificationPresentationModel->getBodyMessage()
#3 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Formatters/EchoEventFormatter.php(77): MediaWiki\Extension\Notifications\Formatters\EchoPlainTextEmailFormatter->formatModel(MediaWiki\Extension\CampaignEvents\Notifications\RegistrationNotificationPresentationModel)
#4 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Notifier.php(223): MediaWiki\Extension\Notifications\Formatters\EchoEventFormatter->format(MediaWiki\Extension\Notifications\Model\Event, string)
#5 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Notifier.php(153): MediaWiki\Extension\Notifications\Notifier::generateEmail(MediaWiki\Extension\Notifications\Model\Event, MediaWiki\User\User)
#6 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Controller/NotificationController.php(449): MediaWiki\Extension\Notifications\Notifier::notifyWithEmail(MediaWiki\User\User, MediaWiki\Extension\Notifications\Model\Event)
#7 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Controller/NotificationController.php(155): MediaWiki\Extension\Notifications\Controller\NotificationController::doNotification(MediaWiki\Extension\Notifications\Model\Event, MediaWiki\User\User, string)
#8 /srv/mediawiki/php-1.45.0-wmf.12/extensions/Echo/includes/Model/Event.php(213): MediaWiki\Extension\Notifications\Controller\NotificationController::notify(MediaWiki\Extension\Notifications\Model\Event, bool)
#9 /srv/mediawiki/php-1.45.0-wmf.12/extensions/CampaignEvents/src/Notifications/UserNotifier.php(32): MediaWiki\Extension\Notifications\Model\Event::create(array)
#10 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/MWCallableUpdate.php(52): MediaWiki\Extension\CampaignEvents\Notifications\UserNotifier::MediaWiki\Extension\CampaignEvents\Notifications\{closure}(string)
#11 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/DeferredUpdates.php(459): MediaWiki\Deferred\MWCallableUpdate->doUpdate()
#12 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/DeferredUpdates.php(201): MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\MWCallableUpdate)
#13 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/DeferredUpdates.php(288): MediaWiki\Deferred\DeferredUpdates::run(MediaWiki\Deferred\MWCallableUpdate)
#14 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/DeferredUpdatesScope.php(243): MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\MWCallableUpdate, int)
#15 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/DeferredUpdatesScope.php(172): MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure)
#16 /srv/mediawiki/php-1.45.0-wmf.12/includes/deferred/DeferredUpdates.php(307): MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure)
#17 /srv/mediawiki/php-1.45.0-wmf.12/includes/MediaWikiEntryPoint.php(670): MediaWiki\Deferred\DeferredUpdates::doUpdates()
#18 /srv/mediawiki/php-1.45.0-wmf.12/includes/MediaWikiEntryPoint.php(492): MediaWiki\MediaWikiEntryPoint->restInPeace()
#19 /srv/mediawiki/php-1.45.0-wmf.12/includes/MediaWikiEntryPoint.php(450): MediaWiki\MediaWikiEntryPoint->doPostOutputShutdown()
#20 /srv/mediawiki/php-1.45.0-wmf.12/includes/MediaWikiEntryPoint.php(207): MediaWiki\MediaWikiEntryPoint->postOutputShutdown()
#21 /srv/mediawiki/php-1.45.0-wmf.12/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#22 /srv/mediawiki/w/index.php(3): require(string)
#23 {main}
Impact

Registration confirmation email is not sent.

Notes

Definitely a recent regression.

Event Timeline

Regression from r1172028, apologies for not spotting it (phan didn't catch it either, likely because the method takes string, but Message is stringable). Aside from the fix:

  • we should include a regression test
  • unrelatedly, the message key is not consistent with the others in the same file, it should be renamed

Change #1174747 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Notifications: fix type error and add regression test

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

Patch is up. As for the following:

  • unrelatedly, the message key is not consistent with the others in the same file, it should be renamed

not only is it inconsistent, but the code uses a key that doesn't exist. I'll update the code in the patch for this task (so it can be backported without a full i18n rebuild), then rename the message in a follow-up: r1174752.

Mentioned in SAL (#wikimedia-operations) [2025-07-31T18:27:04Z] <brennen> train 1.45.0-wmf.12 status (T396373): blocked on T400899, holding at group1

Change #1174796 had a related patch set uploaded (by Brennen Bearnes; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@wmf/1.45.0-wmf.12] Notifications: fix type error and add regression test

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

Change #1174796 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@wmf/1.45.0-wmf.12] Notifications: fix type error and add regression test

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

Mentioned in SAL (#wikimedia-operations) [2025-07-31T19:10:27Z] <brennen@deploy1003> Started scap sync-world: Backport for [[gerrit:1174796|Notifications: fix type error and add regression test (T400899)]]

Mentioned in SAL (#wikimedia-operations) [2025-07-31T19:12:33Z] <brennen@deploy1003> brennen: Backport for [[gerrit:1174796|Notifications: fix type error and add regression test (T400899)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Change #1174747 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Notifications: fix type error and add regression test

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

Mentioned in SAL (#wikimedia-operations) [2025-07-31T19:19:13Z] <brennen@deploy1003> Finished scap sync-world: Backport for [[gerrit:1174796|Notifications: fix type error and add regression test (T400899)]] (duration: 08m 46s)

Daimona lowered the priority of this task from Unbreak Now! to High.Jul 31 2025, 8:04 PM

Thank you!

vaughnwalters closed this task as Resolved.EditedJul 31 2025, 9:17 PM

This is sending email as expected upon registration, I am marking this as done / resolved. Thank you for the speedy resolution!!

Screenshot 2025-07-31 at 4.05.34 PM.png (1×1 px, 230 KB)