For example, if I open https://dev.translatewiki.net/w/i.php?title=Special:ContentTranslation&page=Vantaa&from=en&to=es&targettitle=Vantaa&version=2 in incognito mode, I get the following error:
[946fc2b6f7ea09fc38e7af62] /w/i.php?title=Special:ContentTranslation&page=Vantaa&from=en&to=es&targettitle=Vantaa&version=1 Exception from line 20 of /www/dev.translatewiki.net/docroot/w/extensions/ContentTranslation/includes/Translator.php: User account is not global
Backtrace:
#0 /www/dev.translatewiki.net/docroot/w/extensions/ContentTranslation/specials/SpecialContentTranslation.php(104): ContentTranslation\Translator->getGlobalUserId()
#1 /www/dev.translatewiki.net/docroot/w/extensions/ContentTranslation/specials/SpecialContentTranslation.php(151): SpecialContentTranslation->isExistingTranslation()
#2 /www/dev.translatewiki.net/docroot/w/extensions/ContentTranslation/specials/SpecialContentTranslation.php(187): SpecialContentTranslation->onTranslationView()
#3 /www/dev.translatewiki.net/docroot/w/extensions/ContentTranslation/specials/ContentTranslationSpecialPage.php(23): SpecialContentTranslation->getRedirectURL()
#4 /www/dev.translatewiki.net/docroot/w/includes/specialpage/SpecialPage.php(569): ContentTranslationSpecialPage->execute(NULL)
#5 /www/dev.translatewiki.net/docroot/w/includes/specialpage/SpecialPageFactory.php(581): SpecialPage->run(NULL)
#6 /www/dev.translatewiki.net/docroot/w/includes/MediaWiki.php(288): MediaWiki\Special\SpecialPageFactory->executePath(Title, RequestContext)
#7 /www/dev.translatewiki.net/docroot/w/includes/MediaWiki.php(868): MediaWiki->performRequest()
#8 /www/dev.translatewiki.net/docroot/w/includes/MediaWiki.php(525): MediaWiki->main()
#9 /www/dev.translatewiki.net/docroot/w/index.php(42): MediaWiki->run()
#10 {main}This can happen in two ways:
- Session has expired when user clicks to continue a draft on the dashboard
- Direct access via browser history or bookmarks
Logstash has 88 instances of this for the past 7 days. That is not a lot, but it's still log spam that should be fixed.
Suggested fix: Check if user is anonymous before loading the draft. This is mostly easily done on the PHP side, and it can display a nicely formatted error message instead. For example using SpecialPage::requireLogin.
