Support

Site Restoration

#42119 "Cannot instantiate abstract class" error after restore

Posted in ‘Site restoration’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

PHP version
n/a
CMS Type
Joomla!
CMS Version
10.0.3
Backup Tool Version
10.0.2
Kickstart version
8.0.6

Latest post by nicholas on Wednesday, 16 July 2025 09:04 CDT

[email protected]

Hi,

I'm restoring a site to a subdomain of the same site using Kickstart. The site itself seems to restore fine but I don't seem to be able to reach the backend. After restoring, when I try to go to https://mysitename.com/administrator, I see "Cannot instantiate abstract class Joomla\Module\Login\Administrator\helper\LoginHelper and nothing else.

Note, when I start the restore, I do see an issue where it states that the restoration script being used is older than the script used when taking the backup (10.0.2 vs 10.0.3) and do see that this can cause problems but what can I do about that?

Any idea what I can do?

Regards

Paul

nicholas
Akeeba Staff
Manager

That's a bug in the code of the site. It has nothing to do with the restoration.

In fact, the bug is the lowercase "h" in \helper\. This MUST be an uppercase H.

Your site worked for you before because it was hosted on a case-insensitive filesystem, most likely NTFS on Windows or APFS on macOS. When Joomla's PSR-4 autoloader was looking for the Joomla\Module\Login\Administrator\helper\LoginHelper class in the file administrator/modules/mod_login/src/helper/LoginHelper.php the Operating System's case-insensitive filesystem was able to load it from administrator/modules/mod_login/src/Helper/LoginHelper.php since case-insensitivity means that helper and Helper are the same thing.

You restored, however, to a Linux server. Linux uses predominantly case-sensitive filesystems such as Ext4. With a case sensitive filesystem helper and Helper are two different things. Therefore, when Joomla's PSR-4 autoloader was looking for the Joomla\Module\Login\Administrator\helper\LoginHelper class in the file administrator/modules/mod_login/src/helper/LoginHelper.php the Operating System's case-sensitive filesystem was NOT able to find that file since the lowercase helper directory does not, in fact, exist.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

[email protected]

Thanks Nicolas,

That looks to have been the issue. I changed to name of the folder but getting a different error now - "Call to member function getLanguages() on null.

My problem is, I can't get to the admin console so can't turn on debugging to get more detail

Any thoughts?

Regards

Paul

nicholas
Akeeba Staff
Manager

All Global Configuration settings are saved into the configuration.php file. To turn on the debug mode and error reporting when you don't have access to the site you need to edit the configuration.php file and change the $debug and $error_reporting lines to read:

public $debug = true;
public $error_reporting = 'maximum';

This will give you the full error backtrace using Symphony's error report page which is integrated into Joomla. This tells you what happened, the file and line, and even show you the lines around the error (with line numbers!) to help you understand the problem before you even edit the problem file.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!