Support

Akeeba Backup for Joomla!

#34654 FOF4 issue in v8 update

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
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

Joomla! version
n/a
PHP version
n/a
Akeeba Backup version
n/a

Latest post by trogladyte on Tuesday, 02 March 2021 18:25 CST

trogladyte

Please look at the bottom of this page (under Support Policy Summary) for our support policy summary, containing important information regarding our working hours and our support policy. Thank you!


EXTREMELY IMPORTANT: Please attach a ZIP file containing your Akeeba Backup log file in order for us to help you with any backup or restoration issue. If the file is over 2Mb, please upload it on your server and post a link to it.


Description of my issue:

Argument 1 passed to FOF40\Utils\ViewManifestMigration::migrateJoomla4MenuXMLFiles() must be an instance of FOF40\Container\Container, instance of Akeeba\Backup\Admin\Container given, called in /home/bizzwizz/public_html/libraries/fof40/InstallScript/Component.php on line 317

 

I manage about 90 sites. Going through updating Joomla to 3.9.25 and updating extensions as well (including Akeeba BU). This error is occurring on almost every attempted update (probably about 8-9 out of 10 attempts). I can install Akeeba manually (as an install) and it works OK, except (so far) 2 installations.

The first one has an inaccessible administrator area at all. I get an HTTP 500 error (I know - very unhelpful).

The second is stuck in a loop and all I see is "An error has occurred. Class 'FOF40\Container\Container' not found. Return to Control Panel". Unfortunately. I get not response when clicking anything in the administrator area. ALL links/menus are unresponsive (even logging out is).

Fortunately, the frontends of these 2 sites appear to be working OK, so it doesn't require an immediate reload of the sites, but I'm certainly going to stop Akeeba BU upgrades for now. until this is fixed.

nicholas
Akeeba Staff
Manager

Thank you for contacting us.

Your problem is a variation of one of the following issues. None of these issues are a bug in our software. In an effort to help as many people as possible we have collected the issues we are seeing and their solutions.

You have an opcode cache issue

Ask your host to reset the PHP opcode cache after updating our software.

While our post-installation script does try to reset the opcode cache, whether it is able to depends on your server setup. If your host has enabled opcode caching in PHP but disabled the PHP function to reset the opcode cache upgrading our software will not reset the opcode cache. As a result your server will still see the old version of our code but some files it referenced may no longer be there. This would result in all sorts of problems, from minor display issues to inability to access your site.

FOF 4 was not installed fully or at all

Our software released between mid-2015 and February 2021 inclusive was using version 3 of our FOF backend framework. Software released on and after March 2nd, 2021 is using version 4 of the framework.

There is a long-standing Joomla issue which may prevent the new version of an extension, such as FOF, to be installed fully or at all. It happens rarely but with thousands of sites using our software it's an issue we see every time we publish a new release. There is a way to work around this.

Download the ZIP file of our software's latest version. Extract it. There is a file called lib_fof40.zip. Extract this file too. There is a folder called fof extracted. Rename it to fof40 and upload it into your site's libraries directories, overwriting a folder named fof40 if it already exists.

Please note that you may have other folders named fof (f oh f), f0f (f zero f) or fof30. DO NOT overwrite them; that would very likely break your site.

After doing that you may have to clear your server's PHP opcode cache (opcache) per the first item in this message.

FEF was not upgraded to version 2 fully or at all

Our software released between 2017 and February 2021 inclusive was using version 1 of our FEF frontend framework. Software released on and after March 2nd, 2021 is using version 2 of the framework.

Due to the same Joomla issue as above it's possible that FEF was not updated fully or at all. There is a way to work around this.

Download the ZIP file of our software's latest version. Extract it. There is a file called file_fef.zip. Extract this file too. Upload the extracted contents into your site's media/fef folder, replacing existing files and directories.

After doing that you may have to clear your server's PHP opcode cache (opcache) per the first item in this message.

The component you are installing or one of its plugins is not fully upgraded

Again due to the same Joomla issue it may be possible that the component you are installing or one of its accompanying plugins are not fully installed.

Assuming that you have access to your site's backend it's enough to try to install the latest version of our software twice in a row, without uninstalling it before or in between. Because Joomla's bug only happens rarely it's virtually guaranteed that the two installations in a row will work just fine. That's been our experience the last 13 years.

Out of date template overrides

This only applies if you have problems in the frontend of your site, you are using one of our extensions with a frontend part (e.g. Akeeba Ticket System, LoginGuard etc) and you have done template overrides to style it.

Please note that the new versions of our software may have changed the view template files you used to create your template overrides or changed their names. Please review your template overrides. This is especially important when you are upgrading to a new minor or major release of our software, i.e. the first or digit before the second or first dot in the version number respectively has changed compared to the previous version of our software you had installed on your site.

Old plugins

It's possible that your site was using at some point an old version of our software which included plugins which are no longer present. While we tried to remove obsolete plugins when updating our software in the past this has not always been possible under all circumstances. As a result, you may be stuck with a very old plugin that has not been maintained for several years and which depends on an old version of our software and/or an old version of our backend framework. This could cause problems on your site including inability to access the backend and/or frontend of your site when upgrading to a new version of our software, especially a version released on or after March 2nd, 2021.

You can safely delete the following folders from your site if they exist:

  • plugins/system/akeebaupdatecheck
  • plugins/system/akeebaactionlog
  • plugins/system/aklazy
  • plugins/system/atoolsjupdatecheck
  • plugins/system/atoolsupdatecheck
  • plugins/system/oneclickaction
  • plugins/system/srp

These are the obsolete plugins from very old versions of Akeeba Backup and Admin Tools.

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!

trogladyte

Thanks for the reply. I can't see any way around this than trashing the sites and reinstalling then.

nicholas
Akeeba Staff
Manager

You don't have to. Delete plugins/system/backuponupdate and plugins/quickicon/akeebabackup and install Akeeba Backup 8.

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!

trogladyte

Thanks Nicholas. That got me sorted on the 2 from above and I managed to get it all going again. 

A (new) third one has started displaying the http 500 error and none of the previous fixes have done anything.

nicholas
Akeeba Staff
Manager

It may be that Joomla didn't fully complete the update or you still have installed a plugin which is obsolete and we haven't included in our software for years. This is the full list of plugins which may be causing this:

plugins/actionlog/akeebabackup
plugins/console/akeebabackup
plugins/installer/akeebabackup
plugins/quickicon/akeebabackup
plugins/system/backuponupdate
plugins/system/akeebaactionlog
plugins/system/akeebaupdatecheck
plugins/system/aklazy
plugins/system/srp

Try deleting all of these folders and install Akeeba Backup 8 again.

Please let me know if this works. I am writing an update which does that automatically when you try to update Akeeba Backup.

I am currently working around a further issue which would occur if Joomla failed to completely update the component OR if the server is using opcache without checking the file modification dates (or has set the file modification check interval to more than the 5 or so seconds it takes Joomla to effect the update). This latter issue is very rare, only reported by two out of thirty or so people with installation issues, and is the only one actually related to new code added in this version. All other issues are either related to very old plugins still being present or Joomla failing to update correctly one or more plugins.

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!

trogladyte

All those folders are now deleted (only had 2-3 left from previous deletions). Can't install v8 again as I have an HTTP 500 error on a white screen - no administrator screen available.

As I mentioned earlier, at least the frontend is still working fine! :-)

nicholas
Akeeba Staff
Manager

A white page or a page with a 500 Internal Server Error is, in fact, either a .htaccess issue to a PHP fatal error in disguise.

Edit your configuration.php and make changes to the following two lines

public $error_reporting = 'development';
public $debug = '1';

This should print out more information instead of a generic error 500. Please copy that information here. You can substitute the path to your site with XXXX — I only need the relative path of the files referenced in the error. It will help me understand what is going on.

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!

trogladyte

After some further thinking, it definitely is related to some old installations. In thinking about the ones that are giving me grief, they are sites I built way back, some were Joomla v1.5+ and translated through to later Joomla versions. Just had another fail - another old site.

 

I edited configuration.php and it showed nothing else - still just HTTP 500.

nicholas
Akeeba Staff
Manager

Can you please file a new private ticket and give me Super User and SFTP access to an affected site? I have a few ideas.

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!

trogladyte

Done! Thanks.

nicholas
Akeeba Staff
Manager

Thank you for the private ticket. You had not made the changes to configuration.php. When I made them I saw that the problem is caused by a different plugin (ReDJ):

Fatal error: Uncaught TypeError: Argument 1 passed to plgSystemReDJ::customException() must be an instance of Exception, instance of Error given in /XXXXX/plugins/system/redj/redj.php:626 Stack trace: #0 [internal function]: plgSystemReDJ::customException(Object(Error)) #1 {main} thrown in /XXXXX/plugins/system/redj/redj.php on line 626

I remember from a past ticket with you that this is a redirection extension you are using. It looks like it is not compatible with Joomla 3 and crashes when it's met with an error page, making it unfit for purpose. You need to update it.

Anyway, renaming its folder I could see the problem:

Class 'FOFModel' is not found

This is from FOF 2.x which is part of Joomla. It lives in libraries/fof.

The folder is no longer there. You have deleted it, breaking your site.

Remember what I had said in my original reply?

Please note that you may have other folders named fof (f oh f), f0f (f zero f) or fof30. DO NOT overwrite them; that would very likely break your site.

You basically did what I told you not to do and your site broke :) The reason it broke is that Joomla's control panel page tries to load the Joomla post-installation messages. The Joomla post-installation messages component uses FOF 2.x from that folder you deleted.

Download Joomla's installation ZIP file, extract it and upload libraries/fof back to your site.

For what it's worth, accessing the /administrator/index.php?option=com_akeeba I can see that Akeeba Backup 8 (the component) is installed just fine. Since you have deleted the plugin folders, as I said, you need to install the Akeeba Backup 8 package AGAIN, but WITHOUT uninstalling it.

Please pay attention to the instructions I gave you. If you do not follow them and do something different it's not the same and will break your site(s).

So, your last issue is actually unrelated to Akeeba Backup so I'm off to releasing 8.0.1 and getting a bit of sleep. It's already past 2 am here.

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!

trogladyte

Thanks Nicholas. I was trying to be so careful with all those manual edits. Looks like I wasn't careful enough. Thanks for your help.

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!