Downgrade expired user upgrades failing

stromb0li

Well-known member
Affected version
2.3.6
I've recently started to see the following in server error logs when the Downgrade expired user upgrades cron job runs. It prevents the job from successfully completing altogether.

Code:
TypeError: XF\Service\User\DowngradeService::__construct(): Argument #3 ($user) must be of type XF\Entity\User, null given, called in /var/www/src/XF/Container.php on line 275 in src/XF/Service/User/DowngradeService.php at line 38
XF\Service\User\DowngradeService->__construct() in src/XF/Container.php at line 275
XF\Container->createObject() in src/XF/App.php at line 1968
XF\App->{closure:XF\App::initialize():1961}() in src/XF/Container.php at line 233
XF\Container->create() in src/XF/App.php at line 3550
XF\App->service() in src/XF/Repository/UserUpgradeRepository.php at line 150
XF\Repository\UserUpgradeRepository->downgradeExpiredUpgrades() in src/XF/Cron/CleanUp.php at line 246
XF\Cron\CleanUp::runUserDowngrade() in src/XF/Admin/Controller/CronEntryController.php at line 119
XF\Admin\Controller\CronEntryController->actionRun() in src/XF/Mvc/Dispatcher.php at line 362
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 264
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 121
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 63
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2826
XF\App->run() in src/XF.php at line 806
XF::runApp() in admin.php at line 15

Edit: it looks like there was a stale user that no longer existed (e.g. no longer exists in xf_user table) for whatever reason. Removing that user solved for this. Not sure if it's worth cleaning up the stale entry in this table if the user doesn't exist as part of the cron job?
 
Back
Top Bottom