XF 2.3 Class XF\Authentication\Huddler does not exist

Russ

Well-known member
Licensed customer
I've seen this a few times from sites that were on the Huddler platform. It appears to be old users logging in but when they try, they just get a server error.

Talking to all the various AI, they seem to think this will fix the issue globally:

Code:
UPDATE xf_user_authenticate
SET scheme_class = 'XF:Core',
    data = X'613A313A7B733A343A2268617368223B733A303A22223B7D'
WHERE scheme_class LIKE '%Huddler%';

But it's AI and I have very limited trust in those answers :D. Does that seem like an appropriate query to adjust this? This apparently would cause the users to get invalid password which they could simply reset it. Is there a better method to force a password reset on these users, not sure that would fix it.
 
Last edited:
I've seen this a few times from sites that were on the Huddler platform. It appears to be old users logging in but when they try, they just get a server error.

Talking to all the various AI, they seem to think this will fix the issue globally:

Code:
UPDATE xf_user_authenticate
SET scheme_class = 'XF:Core',
    data = X'613A313A7B733A343A2268617368223B733A303A22223B7D'
WHERE scheme_class LIKE '%Huddler%';

But it's AI and I have very limited trust in those answers. Does that seem like an appropriate query to adjust this? This apparently would cause the users to get invalid password which they could simply reset it. Is there a better method to force a password reset on these users, not sure that would fix it.
Aren’t there any error logs in XenForo? Having access to those would be much better for identifying the root cause and debugging the issue properly.
 
Last edited:
Meant to post it in my original message.
Code:
LogicException: Class XF\Authentication\Huddler does not exist src/XF/Container.php:289
Generated by: Unknown account May 28, 2026 at 9:27 PM
Stack trace
#0 src/XF/App.php(1955): XF\Container->createObject('XF\\Authenticati...', Array)
#1 src/XF/Container.php(250): XF\App->XF\{closure}('XF\\Authenticati...', Array, Object(XF\Container))
#2 src/XF/App.php(3501): XF\Container->create('auth', 'XF:Huddler', Array)
#3 src/XF/Entity/UserAuth.php(60): XF\App->auth('XF:Huddler', Array)
#4 src/XF/Entity/UserAuth.php(24): XF\Entity\UserAuth->getAuthenticationHandler()
#5 src/addons/SV/UserEssentials/XF/Entity/UserAuth.php(25): XF\Entity\UserAuth->authenticate('*****')
#6 src/XF/Service/User/LoginService.php(105): SV\UserEssentials\XF\Entity\UserAuth->authenticate('*****')
#7 src/addons/SV/SignupAbuseBlocking/XF/Service/User/LoginPatch.php(42): XF\Service\User\LoginService->validate('*****', NULL)
#8 src/addons/SV/SignupAbuseBlocking/XF/Service/User/Login.php(21): SV\SignupAbuseBlocking\XF\Service\User\LoginPatch->validate('*****', NULL)
#9 src/XF/Pub/Controller/LoginController.php(150): SV\SignupAbuseBlocking\XF\Service\User\Login->validate('*****', NULL)
#10 src/addons/SV/SignupAbuseBlocking/XF/Pub/Controller/LoginPatch.php(24): XF\Pub\Controller\LoginController->actionLogin(Object(XF\Mvc\ParameterBag))
#11 src/addons/SV/SignupAbuseBlocking/Globals.php(50): SV\SignupAbuseBlocking\XF\Pub\Controller\LoginPatch->SV\SignupAbuseBlocking\XF\Pub\Controller\{closure}()
#12 src/addons/SV/SignupAbuseBlocking/XF/Pub/Controller/LoginPatch.php(24): SV\SignupAbuseBlocking\Globals::withLoginAction('login', Object(Closure))
#13 src/XF/Mvc/Dispatcher.php(362): SV\SignupAbuseBlocking\XF\Pub\Controller\LoginPatch->actionLogin(Object(XF\Mvc\ParameterBag))
#14 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#15 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#16 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#17 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#18 src/XF.php(814): XF\App->run()
#19 index.php(23): XF::runApp('XF\\Pub\\App')
#20 {main}

A different site:

Code:
LogicException: Class XenCentral\HuddlerImporter\Authentication\Huddler does not exist src/XF/Container.php:273
Generated by: Unknown account Jun 4, 2026 at 8:53 PM
Stack trace
#0 src/XF/App.php(1713): XF\Container->createObject('XenCentral\\Hudd...', Array)
#1 src/XF/Container.php(234): XF\App->XF\{closure}('XenCentral\\Hudd...', Array, Object(XF\Container))
#2 src/XF/App.php(3113): XF\Container->create('auth', 'XenCentral\\Hudd...', Array)
#3 src/XF/Entity/UserAuth.php(60): XF\App->auth('XenCentral\\Hudd...', Array)
#4 src/XF/Entity/UserAuth.php(24): XF\Entity\UserAuth->getAuthenticationHandler()
#5 src/XF/Service/User/Login.php(124): XF\Entity\UserAuth->authenticate('*****')
#6 src/XF/Pub/Controller/Login.php(96): XF\Service\User\Login->validate('*****', NULL)
#7 src/addons/Siropu/Chat/XF/Pub/Controller/Login.php(11): XF\Pub\Controller\Login->actionLogin()
#8 src/XF/Mvc/Dispatcher.php(352): Siropu\Chat\XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#9 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', Object(XF\Mvc\RouteMatch), Object(Siropu\Chat\XF\Pub\Controller\Login), NULL)
#10 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(Siropu\Chat\XF\Pub\Controller\Login), NULL)
#11 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#12 src/XF/App.php(2483): XF\Mvc\Dispatcher->run()
#13 src/XF.php(524): XF\App->run()
#14 index.php(20): XF::runApp('XF\\Pub\\App')
#15 {main}/code]
 
looking at my table, i don't have XF:Core
i have XF:Core12

you might want to pull an actual record from the table there if you do go down that route.


Code:
> select scheme_class, count(*) from xf_user_authenticate group by scheme_class;
+---------------+----------+
| scheme_class  | count(*) |
+---------------+----------+
| XF:Core12     |    15966 |
| XF:NoPassword |     1482 |
| XF:vBulletin  |    75331 |
+---------------+----------+
3 rows in set (0.118 sec)

I would probably switch to nopassword? but i don't know what that actually does (perhaps its a 3rd party service like Google/facebook connected accounts)
 
Meant to post it in my original message.
Code:
LogicException: Class XF\Authentication\Huddler does not exist src/XF/Container.php:289
Generated by: Unknown account May 28, 2026 at 9:27 PM
Stack trace
#0 src/XF/App.php(1955): XF\Container->createObject('XF\\Authenticati...', Array)
#1 src/XF/Container.php(250): XF\App->XF\{closure}('XF\\Authenticati...', Array, Object(XF\Container))
#2 src/XF/App.php(3501): XF\Container->create('auth', 'XF:Huddler', Array)
#3 src/XF/Entity/UserAuth.php(60): XF\App->auth('XF:Huddler', Array)
#4 src/XF/Entity/UserAuth.php(24): XF\Entity\UserAuth->getAuthenticationHandler()
#5 src/addons/SV/UserEssentials/XF/Entity/UserAuth.php(25): XF\Entity\UserAuth->authenticate('*****')
#6 src/XF/Service/User/LoginService.php(105): SV\UserEssentials\XF\Entity\UserAuth->authenticate('*****')
#7 src/addons/SV/SignupAbuseBlocking/XF/Service/User/LoginPatch.php(42): XF\Service\User\LoginService->validate('*****', NULL)
#8 src/addons/SV/SignupAbuseBlocking/XF/Service/User/Login.php(21): SV\SignupAbuseBlocking\XF\Service\User\LoginPatch->validate('*****', NULL)
#9 src/XF/Pub/Controller/LoginController.php(150): SV\SignupAbuseBlocking\XF\Service\User\Login->validate('*****', NULL)
#10 src/addons/SV/SignupAbuseBlocking/XF/Pub/Controller/LoginPatch.php(24): XF\Pub\Controller\LoginController->actionLogin(Object(XF\Mvc\ParameterBag))
#11 src/addons/SV/SignupAbuseBlocking/Globals.php(50): SV\SignupAbuseBlocking\XF\Pub\Controller\LoginPatch->SV\SignupAbuseBlocking\XF\Pub\Controller\{closure}()
#12 src/addons/SV/SignupAbuseBlocking/XF/Pub/Controller/LoginPatch.php(24): SV\SignupAbuseBlocking\Globals::withLoginAction('login', Object(Closure))
#13 src/XF/Mvc/Dispatcher.php(362): SV\SignupAbuseBlocking\XF\Pub\Controller\LoginPatch->actionLogin(Object(XF\Mvc\ParameterBag))
#14 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#15 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#16 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#17 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#18 src/XF.php(814): XF\App->run()
#19 index.php(23): XF::runApp('XF\\Pub\\App')
#20 {main}

A different site:

Code:
LogicException: Class XenCentral\HuddlerImporter\Authentication\Huddler does not exist src/XF/Container.php:273
Generated by: Unknown account Jun 4, 2026 at 8:53 PM
Stack trace
#0 src/XF/App.php(1713): XF\Container->createObject('XenCentral\\Hudd...', Array)
#1 src/XF/Container.php(234): XF\App->XF\{closure}('XenCentral\\Hudd...', Array, Object(XF\Container))
#2 src/XF/App.php(3113): XF\Container->create('auth', 'XenCentral\\Hudd...', Array)
#3 src/XF/Entity/UserAuth.php(60): XF\App->auth('XenCentral\\Hudd...', Array)
#4 src/XF/Entity/UserAuth.php(24): XF\Entity\UserAuth->getAuthenticationHandler()
#5 src/XF/Service/User/Login.php(124): XF\Entity\UserAuth->authenticate('*****')
#6 src/XF/Pub/Controller/Login.php(96): XF\Service\User\Login->validate('*****', NULL)
#7 src/addons/Siropu/Chat/XF/Pub/Controller/Login.php(11): XF\Pub\Controller\Login->actionLogin()
#8 src/XF/Mvc/Dispatcher.php(352): Siropu\Chat\XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#9 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', Object(XF\Mvc\RouteMatch), Object(Siropu\Chat\XF\Pub\Controller\Login), NULL)
#10 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(Siropu\Chat\XF\Pub\Controller\Login), NULL)
#11 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#12 src/XF/App.php(2483): XF\Mvc\Dispatcher->run()
#13 src/XF.php(524): XF\App->run()
#14 index.php(20): XF::runApp('XF\\Pub\\App')
#15 {main}/code]
Okay. So i checked. I was doing an IPS Import and it looks something like this in db.

1780730594801.webp

and In XF whoever did the Import need to create a authentication addon, so that login works properly for users imported from Huddler. One can take example from the files in directory "\src\XF\Authentication"

1780730906540.webp

I think developing a new addon for Huddler Authentication method to fix this Import error is far better approach.

Code:
Code:
UPDATE xf_user_authenticate
SET scheme_class = 'XF:Core',
    data = X'613A313A7B733A343A2268617368223B733A303A22223B7D'
WHERE scheme_class LIKE '%Huddler%';
This Query is also something one can run to update old imported users but i don't recommend it. Old accounts won't be able to login using old passwords i guess. Though better try on some test database first if users need to reset password.
 
I think developing a new addon for Huddler Authentication method to fix this Import error is far better approach.
This.

I've been asked to look at this also, and this should be handled via a proper addon, especially with these sort of numbers

Code:
MariaDB [XXXXX]> SELECT scheme_class, COUNT(*)
    -> FROM xf_user_authenticate
    -> GROUP BY scheme_class;
+---------------------------------------------------+----------+
| scheme_class                                      | COUNT(*) |
+---------------------------------------------------+----------+
| XenCentral_HuddlerImporter_Authentication_Huddler |   421591 |
| XF:Core12                                         |   270914 |
+---------------------------------------------------+----------+
2 rows in set (1.593 sec)
 
Back
Top Bottom