Fixed Class XF\Authentication\IPBoard40x does not exist

Gator

Well-known member
I installed the latest version of XF1 and imported my IPBoard 4.2 database. All installed and imported without error. I then Upgraded to XF2, and again no errors. When I log in as the administrator (created during install), no problem.

But all of the imported logins are getting this error:

LogicException: Class XF\Authentication\IPBoard40x does not exist src/XF/Container.php:267
 
Having this problem too in v2.0.4. Converted from IPB 4.2 to XF1, and then from XF1 to XF 2.0.4. Whenever anyone tries to login with their old IPB account, this error happens:

  • LogicException: Class XF\Authentication\IPBoard40x does not exist
  • src/XF/Container.php:267
Stack trace
#0 src/XF/App.php(1312): XF\Container->createObject('XF\\Authenticati...', Array)
#1 src/XF/Container.php(228): XF\App->XF\{closure}('XF\\Authenticati...', Array, Object(XF\Container))
#2 src/XF/App.php(2455): XF\Container->create('auth', 'XF\\Authenticati...', Array)
#3 src/XF/Entity/UserAuth.php(54): XF\App->auth('XF\\Authenticati...', Array)
#4 src/XF/Entity/UserAuth.php(22): XF\Entity\UserAuth->getAuthenticationHandler()
#5 src/XF/Service/User/Login.php(122): XF\Entity\UserAuth->authenticate('aaf98b8bb2eeaba')
#6 src/XF/Pub/Controller/Login.php(83): XF\Service\User\Login->validate('aaf98b8bb2eeaba', NULL)
#7 src/XF/Mvc/Dispatcher.php(249): XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#8 src/XF/Mvc/Dispatcher.php(88): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', 'html', Object(XF\Mvc\ParameterBag), '', Object(XF\Pub\Controller\Login), NULL)
#9 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#10 src/XF/App.php(1891): XF\Mvc\Dispatcher->run()
#11 src/XF.php(328): XF\App->run()
#12 index.php(13): XF::runApp('XF\\Pub\\App')
#13 {main}



edit: I managed to fix it. In the xf_user_authenticate table, I replaced every instance of XenForo_Authentication_IPBoard40x in the scheme_class column with XF:IpsForums4x. Not sure why it hasn't happened automatically during the upgrade/conversion.
 
Last edited:
edit: I managed to fix it. In the xf_user_authenticate table, I replaced every instance of XenForo_Authentication_IPBoard40x in the scheme_class column with XF:IpsForums4x. Not sure why it hasn't happened automatically during the upgrade/conversion.
 
SQL:
UPDATE xf_user_authenticate
SET scheme_class = 'XF:IpsForums4x'
WHRRE scheme_class ='XenForo_Authentication_IPBoard40x'
 
Let me know if that sorts it or not and confirm which XF version you’re running, please.

I have a feeling there might be an oversight here and it may need a different query and a different method of fixing for a future release.
 
SQL query:

UPDATE xf_user_authenticate
SET scheme_class = 'XF:IpsForums4x'
WHRRE scheme_class ='XenForo_Authentication_IPBoard40x'


MySQL said:
#1046 - No database selected

<<< I'm also using the latest version of XF.
 
Assuming this is PhpMyAdmin you need to actually click on your database first, before going to the SQL tab.
 
Whoooops. That was my bad. lol


UPDATE xf_user_authenticate
SET scheme_class = 'XF:IpsForums4x'
WHRRE scheme_class ='XenForo_Authentication_IPBoard40x'


MySQL said:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHRRE scheme_class ='XenForo_Authentication_IPBoard40x'' at line 3

<<< I found there was a spelling error and fixed it. That seems to have helped with the tables that had 'XenForo_Authentication_IPBoard40x'.

I also noticed many of the tables also have : 'XenForo_Authentication_IPBoard' in place of the 'XenForo_Authentication_IPBoard40x' but I'm not yet sure if they have the same negative effect or if they too should be replaced with the 'XF:IpsForums4x'.
 
Top Bottom