Page MenuHomePhabricator

Wikimedia\Rdbms\Database::makeList: empty input for field eps_token
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error

MediaWiki version: 1.36.0-wmf.14

message
Wikimedia\Rdbms\Database::makeList: empty input for field eps_token

Impact

Notes

Details

Request ID
824e1954-7c8e-47ba-9c0d-4f2af6a7eb9d
Request URL
https://en.wikipedia.org/w/api.php?format=json&formatversion=2&errorformat=plaintext&action=echopushsubscriptions&command=delete&provider=fcm
Stack Trace
exception.trace
#0 /srv/mediawiki/php-1.36.0-wmf.14/includes/libs/rdbms/database/Database.php(3448): Wikimedia\Rdbms\Database->makeList(array, integer)
#1 /srv/mediawiki/php-1.36.0-wmf.14/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->delete(string, array, string)
#2 /srv/mediawiki/php-1.36.0-wmf.14/includes/libs/rdbms/database/DBConnRef.php(518): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#3 /srv/mediawiki/php-1.36.0-wmf.14/extensions/Echo/includes/Push/SubscriptionManager.php(129): Wikimedia\Rdbms\DBConnRef->delete(string, array, string)
#4 /srv/mediawiki/php-1.36.0-wmf.14/extensions/Echo/includes/api/Push/ApiEchoPushSubscriptionsDelete.php(64): EchoPush\SubscriptionManager->delete(array, integer)
#5 /srv/mediawiki/php-1.36.0-wmf.14/extensions/Echo/includes/api/Push/ApiEchoPushSubscriptions.php(33): EchoPush\Api\ApiEchoPushSubscriptionsDelete->execute()
#6 /srv/mediawiki/php-1.36.0-wmf.14/includes/api/ApiMain.php(1572): EchoPush\Api\ApiEchoPushSubscriptions->execute()
#7 /srv/mediawiki/php-1.36.0-wmf.14/includes/api/ApiMain.php(552): ApiMain->executeAction()
#8 /srv/mediawiki/php-1.36.0-wmf.14/includes/api/ApiMain.php(523): ApiMain->executeActionWithErrorHandling()
#9 /srv/mediawiki/php-1.36.0-wmf.14/api.php(90): ApiMain->execute()
#10 /srv/mediawiki/php-1.36.0-wmf.14/api.php(45): wfApiMain()
#11 /srv/mediawiki/w/api.php(3): require(string)
#12 {main}

Event Timeline

cc @MSantos @Jgiannelos , looks related to some recent work by Product Infrastructure team.

Empty list from api could be coming since https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Echo/+/619570 - because IS_MULTI also includes empty list (even when required)

There is 'apierror-paramempty' for this, for example found in ApiRevisionDelete

MSantos triaged this task as Medium priority.Nov 9 2020, 12:13 PM

Change 640176 had a related patch set uploaded (by MSantos; owner: MSantos):
[mediawiki/extensions/Echo@master] push: die with error if providertokens param is empty

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

For what it's worth, after thinking about it some more, I'm not sure that the providertoken param should accept multiple values per request. The reason I made it multi-valued was that I was concerned about API load when making deletion requests from the service for failed tokens after a batched push request submission. But I think we'd expect the number of failed tokens for any given batch to be relatively small, i.e., within a range that API load balancing could easily handle if the requests were made individually. Perhaps we'd be better off updating it to take only a single providertoken value per request, for simplicity and consistency with echopushsubscriptionscreate.

Change 640176 merged by jenkins-bot:
[mediawiki/extensions/Echo@master] push: die with error if providertokens param is empty

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