Page MenuHomePhabricator

ArgumentCountError: Too few arguments to function MediaWiki\Extension\EventBus\Serializers\MediaWiki\UserEntitySerializer::__construct(), 3 passed in /srv/mediawiki/php-1.47.0-wmf.2/extensions/WikimediaEvents/
Closed, ResolvedPublicPRODUCTION ERROR

Description

There are two similar errors, including them both here:

Error
  • service.version: 1.47.0-wmf.2
  • timestamp: 2026-05-12T08:34:31.775Z
  • labels.phpversion: 8.3.30
  • trace.id: 021edf59-cd56-4cfb-80e5-84f3acf660ee
  • Find trace.id in Logstash
labels.normalized_message
[{reqId}] {exception_url}   ArgumentCountError: Too few arguments to function MediaWiki\Extension\EventBus\Serializers\MediaWiki\UserEntitySerializer::__construct(), 3 passed in /srv/mediawiki/php-1.47.0-wmf.2/extensions/WikimediaEvents/includes/IPReputationHooks.php on line 150 and exactly 4 expected

[{reqId}] {exception_url}   ArgumentCountError: Too few arguments to function MediaWiki\Extension\EventBus\Serializers\MediaWiki\UserEntitySerializer::__construct(), 3 passed in /srv/mediawiki/php-1.47.0-wmf.2/extensions/WikimediaEvents/includes/EditPage/CaptchaScoreHooks.php on line 321 and exactly 4 expected
FrameLocationCall
from/srv/mediawiki/php-1.47.0-wmf.2/extensions/EventBus/includes/Serializers/MediaWiki/UserEntitySerializer.php(61)
#0/srv/mediawiki/php-1.47.0-wmf.2/extensions/WikimediaEvents/includes/IPReputationHooks.php(150)MediaWiki\Extension\EventBus\Serializers\MediaWiki\UserEntitySerializer->__construct(MediaWiki\User\UserFactory, MediaWiki\User\UserGroupManager, MediaWiki\Extension\CentralAuth\User\CentralAuthIdLookup)
#1/srv/mediawiki/php-1.47.0-wmf.2/extensions/WikimediaEvents/includes/IPReputationHooks.php(70)WikimediaEvents\IPReputationHooks->recordEvent(string, string, MediaWiki\User\User, int)
#2/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/MWCallableUpdate.php(52)WikimediaEvents\IPReputationHooks->WikimediaEvents\{closure}(string)
#3/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/DeferredUpdates.php(448)MediaWiki\Deferred\MWCallableUpdate->doUpdate()
#4/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/DeferredUpdates.php(187)MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\MWCallableUpdate)
#5/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/DeferredUpdates.php(277)MediaWiki\Deferred\DeferredUpdates::run(MediaWiki\Deferred\MWCallableUpdate)
#6/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/DeferredUpdatesScope.php(229)MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\MWCallableUpdate, int)
#7/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/DeferredUpdatesScope.php(158)MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure)
#8/srv/mediawiki/php-1.47.0-wmf.2/includes/Deferred/DeferredUpdates.php(271)MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure)
#9/srv/mediawiki/php-1.47.0-wmf.2/includes/MediaWikiEntryPoint.php(652)MediaWiki\Deferred\DeferredUpdates::doUpdates()
#10/srv/mediawiki/php-1.47.0-wmf.2/includes/MediaWikiEntryPoint.php(474)MediaWiki\MediaWikiEntryPoint->restInPeace()
#11/srv/mediawiki/php-1.47.0-wmf.2/includes/MediaWikiEntryPoint.php(432)MediaWiki\MediaWikiEntryPoint->doPostOutputShutdown()
#12/srv/mediawiki/php-1.47.0-wmf.2/includes/MediaWikiEntryPoint.php(189)MediaWiki\MediaWikiEntryPoint->postOutputShutdown()
#13/srv/mediawiki/php-1.47.0-wmf.2/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#14/srv/mediawiki/w/index.php(3)require(string)
#15{main}
Impact
Notes

See similar T425801 about CheckUser.

Details

MediaWiki Version
1.47.0-wmf.2
Request URL
https://www.mediawiki.org/wiki/Special:CentralAutoLogin/setCookies?type=*&useformat=*&usesul3=*
Related Changes in Gerrit:

Event Timeline

dom_walden subscribed.

I have seen this fairly reliably when editing (on desktop and mobile VE and SE), either when doing an edit which triggers addurl or AbuseFilter or a normal edit which triggers an hCaptcha challenge.

In the former case, I see the exception before the hCaptcha challenge shows. In the latter, I see the exception after completing the challenge.

Dreamy_Jazz triaged this task as Unbreak Now! priority.May 12 2026, 9:28 AM

Making a train blocker as it breaks instrumentation

Change #1286295 had a related patch set uploaded (by Kosta Harlan; author: Reedy):

[mediawiki/extensions/WikimediaEvents@wmf/1.47.0-wmf.2] Update UserEntitySerializer callers

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

Change #1286295 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@wmf/1.47.0-wmf.2] Update UserEntitySerializer callers

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

Mentioned in SAL (#wikimedia-operations) [2026-05-12T09:48:28Z] <kharlan@deploy1003> Started scap sync-world: Backport for [[gerrit:1286295|Update UserEntitySerializer callers (T426026)]]

Mentioned in SAL (#wikimedia-operations) [2026-05-12T09:50:21Z] <kharlan@deploy1003> kharlan: Backport for [[gerrit:1286295|Update UserEntitySerializer callers (T426026)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2026-05-12T09:56:11Z] <kharlan@deploy1003> Finished scap sync-world: Backport for [[gerrit:1286295|Update UserEntitySerializer callers (T426026)]] (duration: 07m 43s)

Thanks for the quick handling!

@kostajh thanks!

In T392516: [EventBus] Stabilize EventSerializer and related classes we added an EventBus.UserEntitySerializer MW service. Could you inject that into your code instead of constructing a new one?

@kostajh thanks!

In T392516: [EventBus] Stabilize EventSerializer and related classes we added an EventBus.UserEntitySerializer MW service. Could you inject that into your code instead of constructing a new one?

Patches welcome! But the point for UBN fixes is to get prod un-broken.

Okay thanks.

Q:

We recently did T392516 and did a manual rollout and migration for CirrusSearch. I don't know why I did not catch these other usages via CodeSearch.

I filed T425801: CheckUser extension should use EventBus.UserEntitySerializer service instead of constructor in response to https://integration.wikimedia.org/ci/job/quibble-with-gated-extensions-vendor-mysql-php83/33193/console.

Why didn't this WikimediaEvents error show up in quibble-with-gated-extensions CI too?

Why didn't this WikimediaEvents error show up in quibble-with-gated-extensions CI too?

Because WikimediaEvents isn't in the list of gated extensions, so it's tests are not run in quibble-with-gated-extensions

Change #1286947 had a related patch set uploaded (by Ottomata; author: Ottomata):

[mediawiki/extensions/WikimediaEvents@master] Use EventBus.UserEntitySerialize Service

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

Change #1286947 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] Use EventBus.UserEntitySerialize Service

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