Page MenuHomePhabricator

Uncaught exception if a badge id does not exist
Closed, ResolvedPublic

Description

If one of the items in my badgeItems setting does not exist (e.g. deleted or misconfigured), then I get an uncaught exception on Special:SetSiteLink:

Unexpected non-MediaWiki exception encountered, of type "UserInputException"
[7e14a62b] /index.php?title=Special:SetSiteLink Exception from line 145 of /Library/WebServer/Documents/php-master/extensions/WikidataBuild/extensions/Wikibase/repo/includes/specials/SpecialWikibaseRepoPage.php: Entity id is unknown
Backtrace:
#0 /Library/WebServer/Documents/php-master/extensions/WikidataBuild/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php(348): Wikibase\Repo\Specials\SpecialWikibaseRepoPage->loadEntity(Wikibase\DataModel\Entity\ItemId)
#1 /Library/WebServer/Documents/php-master/extensions/WikidataBuild/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php(333): Wikibase\Repo\Specials\SpecialSetSiteLink->getTitleForBadge(Wikibase\DataModel\Entity\ItemId)
#2 /Library/WebServer/Documents/php-master/extensions/WikidataBuild/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php(260): Wikibase\Repo\Specials\SpecialSetSiteLink->getBadgesOptionsHtml()
#3 /Library/WebServer/Documents/php-master/extensions/WikidataBuild/extensions/Wikibase/repo/includes/specials/SpecialModifyEntity.php(205): Wikibase\Repo\Specials\SpecialSetSiteLink->getFormElements(NULL)
#4 /Library/WebServer/Documents/php-master/extensions/WikidataBuild/extensions/Wikibase/repo/includes/specials/SpecialModifyEntity.php(99): Wikibase\Repo\Specials\SpecialModifyEntity->setForm(NULL)
#5 /Library/WebServer/Documents/php-master/includes/specialpage/SpecialPage.php(357): Wikibase\Repo\Specials\SpecialModifyEntity->execute(NULL)
#6 /Library/WebServer/Documents/php-master/includes/specialpage/SpecialPageFactory.php(516): SpecialPage->run(NULL)
#7 /Library/WebServer/Documents/php-master/includes/MediaWiki.php(300): SpecialPageFactory::executePath(Title, RequestContext)
#8 /Library/WebServer/Documents/php-master/includes/MediaWiki.php(609): MediaWiki->performRequest()
#9 /Library/WebServer/Documents/php-master/includes/MediaWiki.php(460): MediaWiki->main()
#10 /Library/WebServer/Documents/php-master/index.php(46): MediaWiki->run()
#11 {main}


Version: unspecified
Severity: normal
Whiteboard: u=dev c=backend p=0

Details

Reference
bz69536

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 3:29 AM
bzimport set Reference to bz69536.
bzimport added a subscriber: Unknown Object (MLST).

I'm not sure if we should check for the existance of the badge item in every place because the exception is the result of a poor configuration. However, we should perhaps prevent the deletion of those badge items although this would also remove responsibilities from the community and its administrators.

gerritadmin wrote:

Change 163351 had a related patch set uploaded by Bene:
Catch exceptions on SpecialSetSiteLink

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

  • Bug 71232 has been marked as a duplicate of this bug. ***

gerritadmin wrote:

Change 163351 merged by jenkins-bot:
Catch exceptions on SpecialSetSiteLink

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