```name=Error message
User::loadFromSession called before the end of Setup.php
```
```lines=12,name=Stack Trace
#0 /srv/mediawiki/php-1.36.0-wmf.14/includes/user/User.php(2009): User->load()
#1 /srv/mediawiki/php-1.36.0-wmf.14/includes/user/User.php(2948): User->getId()
#2 /srv/mediawiki/php-1.36.0-wmf.14/includes/user/User.php(2964): User->isRegistered()
#3 /srv/mediawiki/php-1.36.0-wmf.14/extensions/UniversalLanguageSelector/includes/UniversalLanguageSelectorHooks.php(309): User->isAnon()
#4 /srv/mediawiki/php-1.36.0-wmf.14/includes/HookContainer/HookContainer.php(333): UniversalLanguageSelectorHooks::getLanguage(User, string, RequestContext)
#5 /srv/mediawiki/php-1.36.0-wmf.14/includes/HookContainer/HookContainer.php(140): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array)
#6 /srv/mediawiki/php-1.36.0-wmf.14/includes/HookContainer/HookRunner.php(4245): MediaWiki\HookContainer\HookContainer->run(string, array)
#7 /srv/mediawiki/php-1.36.0-wmf.14/includes/context/RequestContext.php(370): MediaWiki\HookContainer\HookRunner->onUserGetLanguageObject(User, string, RequestContext)
#8 /srv/mediawiki/php-1.36.0-wmf.14/includes/StubUserLang.php(52): RequestContext->getLanguage()
#9 /srv/mediawiki/php-1.36.0-wmf.14/includes/StubObject.php(172): StubUserLang->_newObject()
#10 /srv/mediawiki/php-1.36.0-wmf.14/includes/StubObject.php(115): StubObject->_unstub(string, integer)
#11 /srv/mediawiki/php-1.36.0-wmf.14/includes/StubObject.php(142): StubObject->_call(string, array)
#12 /srv/mediawiki/php-1.36.0-wmf.14/includes/user/User.php(2749): StubObject->__call(string, array)
#13 /srv/mediawiki/php-1.36.0-wmf.14/languages/Language.php(2234): User->getDatePreference()
#14 /srv/mediawiki/php-1.36.0-wmf.14/languages/Language.php(2340): Language->dateFormat(boolean)
#15 /srv/mediawiki/php-1.36.0-wmf.14/languages/Language.php(4608): Language->timeanddate(string, boolean)
#16 /srv/mediawiki/php-1.36.0-wmf.14/includes/block/BlockErrorFormatter.php(111): Language->formatExpiry(string)
#17 /srv/mediawiki/php-1.36.0-wmf.14/includes/block/BlockErrorFormatter.php(204): MediaWiki\Block\BlockErrorFormatter->getFormattedBlockErrorInfo(MediaWiki\Block\DatabaseBlock, User, LanguageEn)
#18 /srv/mediawiki/php-1.36.0-wmf.14/includes/block/BlockErrorFormatter.php(65): MediaWiki\Block\BlockErrorFormatter->getBlockErrorMessageParams(MediaWiki\Block\DatabaseBlock, User, LanguageEn, string)
#19 /srv/mediawiki/php-1.36.0-wmf.14/includes/auth/CheckBlocksSecondaryAuthenticationProvider.php(92): MediaWiki\Block\BlockErrorFormatter->getMessage(MediaWiki\Block\DatabaseBlock, User, LanguageEn, string)
#20 /srv/mediawiki/php-1.36.0-wmf.14/includes/auth/AuthManager.php(1706): MediaWiki\Auth\CheckBlocksSecondaryAuthenticationProvider->testUserForCreation(User, string, array)
#21 /srv/mediawiki/php-1.36.0-wmf.14/includes/Setup.php(812): MediaWiki\Auth\AuthManager->autoCreateUser(User, string, boolean)
#22 /srv/mediawiki/php-1.36.0-wmf.14/includes/WebStart.php(89): require_once(string)
#23 /srv/mediawiki/php-1.36.0-wmf.14/api.php(43): require(string)
#24 /srv/mediawiki/w/api.php(3): require(string)
#25 {main}
```
##### Impact
The user options are ignored and instead the object is treated is anon/default
Exact impact to-be-determined by maintainers of UniversalLanguageSelector and/or BlockErrorFormatter (I've CC-ed Lang team, and AHT).
##### Notes
There is effectively a bad loop where during the initialisation of a User object, the BlockErrorFormatter is asking for information from the (same) User object thus causing a paradox. I suspect UniversalLanguageSelector is merely a bystander here, being the first one to call something on the object before it is returned to BlockErrorFormatter, but I'm not 100% sure, it's possible ULS might be inducing it somehow.
See also:
* {T240083}
* {T265125}
* {T151291}