Support

Akeeba Backup for Joomla!

#39495 Error uploading to S3

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
4.3.4
PHP version
8.1.14
Akeeba Backup version
9.7.1

Latest post by nicholas on Thursday, 21 September 2023 01:08 CDT

robertvdh

When uploading the backup to my S3 site at strato.com I see the following error message in AKeeba:

Β 

Akeeba\Engine\Postproc\Connector\S3v4\Connector::startMultipart(): [500] MalformedDate:Invalid date format header, expected to be in ISO8601, RFC1123 or RFC1123Z time format. Debug info: SimpleXMLElement Object ( [Code] => MalformedDate [Message] => Invalid date format header, expected to be in ISO8601, RFC1123 or RFC1123Z time format. [Key] => /WebBackups/site-www.xsharp.eu-20230919-214521cest-RtTcuOjJrySH2Tn4.jpa [RequestId] => 5KKKSJ3VGE92305J )

Β 

This has worked and stopped working a few weeks ago.The last time it worked was with Akeeba 9.6.2.

With Akeeba 9.7.1 it stopped working.

Β 

Β 

robertvdh

I tried to downgrade to 9.6.2 but I get the message that downgrading is now allowed :(

nicholas
Akeeba Staff
Manager

Are you uploading to Amazon S3 proper or to a different, third party service? There is a very big difference there, that's why I am asking.

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!

robertvdh

I am uploading to a different S3 provider (strato.com).

Robert

nicholas
Akeeba Staff
Manager

This is a known issue. Try using the latest dev release:Β Akeeba Backup for Joomla 4 & 5 Professional (dev release). Let me know if that addresses your problem. Strato is one of the third party services I don't have direct access to test with. Based on their wording in the message about accepting RFC1123Z timestamps I believe the dev release should work. I would very much prefer a β€œfor real” test from someone like you to be extra sure before making a new release.

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!

robertvdh

I have uploaded that package, and now the Akeeba component throws an error:

Failed opening required '/home/xsharp.eu/public_html/administrator/components/com_akeebabackup/src/Mixin/../../engine/Factory.php' (include_path='.:/usr/share/php')

File <root>/administrator/components/com_akeebabackup/src/Mixin/AkeebaEngineTrait.php Line 65

Β 

#0 /home/xsharp.eu/public_html/administrator/components/com_akeebabackup/src/Dispatcher/Dispatcher.php(123): Akeeba\Component\AkeebaBackup\Administrator\Dispatcher\Dispatcher->loadAkeebaEngine(Object(Joomla\Database\Mysqli\MysqliDriver), Object(Joomla\CMS\MVC\Factory\MVCFactory))
#1 [internal function]: Akeeba\Component\AkeebaBackup\Administrator\Dispatcher\Dispatcher->onBeforeDispatch()
#2 /home/xsharp.eu/public_html/administrator/components/com_akeebabackup/src/Mixin/TriggerEventTrait.php(40): call_user_func_array(Array, Array)
#3 /home/xsharp.eu/public_html/administrator/components/com_akeebabackup/src/Dispatcher/Dispatcher.php(78): Akeeba\Component\AkeebaBackup\Administrator\Dispatcher\Dispatcher->triggerEvent('onBeforeDispatc...')
#4 /home/xsharp.eu/public_html/libraries/src/Component/ComponentHelper.php(361): Akeeba\Component\AkeebaBackup\Administrator\Dispatcher\Dispatcher->dispatch()
#5 /home/xsharp.eu/public_html/libraries/src/Application/AdministratorApplication.php(143): Joomla\CMS\Component\ComponentHelper::renderComponent('com_akeebabacku...')
#6 /home/xsharp.eu/public_html/libraries/src/Application/AdministratorApplication.php(186): Joomla\CMS\Application\AdministratorApplication->dispatch()
#7 /home/xsharp.eu/public_html/libraries/src/Application/CMSApplication.php(293): Joomla\CMS\Application\AdministratorApplication->doExecute()
#8 /home/xsharp.eu/public_html/administrator/includes/app.php(61): Joomla\CMS\Application\CMSApplication->execute()
#9 /home/xsharp.eu/public_html/administrator/index.php(32): require_once('/home/xsharp.eu...')
#10 {main}

Β 

Β 

robertvdh

I have reinstalled the previous release (9.7.1), and now Akeeba has reconfigured itself and the S3 configuration was lost. :(

Β 

Robert

nicholas
Akeeba Staff
Manager

Apologies, I linked you to the wrong file. The correct one is Version 9.8.0-dev202309200547-revdb82d3d.

Please remember that you should not try to uninstall Akeeba Backup. Uninstalling removes the entire component, including its configuration and backup records.

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!

robertvdh

I did not uninstall anything. First I installed the version that you linked with the error message that I pasted here.

Then I installed the previous version again and my configuration was lost.

I have now installed the new version and the configuration is still lost.

Is there an easy way to get the configuration back from last night's Akeeba Backup? I do have the jpa file, but I do not want to restore the whole site for just this configuration.

Or should I restore that to a test server, and can I then export the configuration and import it again?

Β 

Robert

nicholas
Akeeba Staff
Manager

First I installed the version that you linked with the error message that I pasted here.

Then I installed the previous version again and my configuration was lost.

Ah, now I understood the sequence of events.

Yes, in this case you would indeed lose the configuration because in Akeeba Backup 9.8 we have changed the way the backup engine is included in the component and, as a direct result, we moved the file holding the encryption key for the encrypted settings to a different folder. This happens automatically when you update from Akeeba Backup 9.0–9.7 to 9.8 and later. If you try to downgrade the file is not moved back since we did not know about this change when we released Akeeba Backup 9.0–9.7, therefore we could not have added code to anticipate this.

In general, downgrades cause problems. That's why I had enabled Joomla's feature which prevents downgrades in Akeeba Backup 9.7. Unfortunately, I had to roll this back because the way this feature is implemented in Joomla is useless in practice: if you have a dev release you cannot install a newer dev release in the same version range, or roll back to the previous stable version. I could foresee a huge problem doing support, therefore I had to once again disable this feature.

Is there an easy way to get the configuration back from last night's Akeeba Backup?

The best way is, as you intuited, to restore the backup to a test server, export the configuration, and then import on your real site. All other methods can be more or less problematic.

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!

robertvdh

I tried to restore the site and save/restore the config, but that did not really work.

I have now entered the data again. I made the error to prefix the Strato URL with HTTPS://.

The config page allows that, but then, at the end of the backup process, it reports an error.

It would be nice if the error was detected at the config page, or at the start of the backup.

nicholas
Akeeba Staff
Manager

There are pros and cons to the validation. The biggest issue is that we'd need the validation in triplicate. Once in the backup engine, where it already is. Once again in the backend when we save the configuration. And yet once more in JavaScript on the configuration page itself so we can show you what is invalid. This quickly gets out of hand and out of sync, even more so considering the fact that the backup engine is used in another two backup products (or three, if you count Akeeba Backup for Joomla 3) and that there are two programming languages involved with different regular expression libraries which work ever so slightly different.

Ultimately, people have only had this issue a handful of times the last 14 years. Adding complexity would cause far more trouble for far more people in much less time: unnecessary complexity breeds trouble. That's why I have decided against validation in the Configuration page.

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!

robertvdh

I understand your point, but is kind of disappointing to see the backup run for several minutes and then fail at the end for something that could have been checked earlier in the process.

Β 

Robert

nicholas
Akeeba Staff
Manager

Well, it is better than having the entire component being broken every few months because one of the three validation checks in one of the dozens of options inevitably got out of sync with the other two.Β  One is a minor annoyance, the other one destroys trust in the software and leads to the business dying.

Keep in mind that there's really no practical way to test all three validations with the practically infinite number of configurations across hundreds of third party services, most of which we have never heard of. Having something continuously breaking because the test space is unknown and too diverse to fully test sounds like a stupid way to make software, if you ask me.

Also remember that no amount of client- or server-side validation can possibly be as accurate as trying an upload for real. And no, saving the Configuration must not try to make an upload for several reasons including performance, the fact that there are write-only destinations we can't pollute with test uploads etc.

Besides, if you get the configuration wrong you only have to take one backup, which you'd do anyway. Then you go back to Configuration, change your configuration, go to Manage Backups, and click on Upload To S3 next to the record which failed to upload earlier. This only retries the upload. This has been the case since February 2010 when I first introduced the remote storage feature in Akeeba Backup 3.0.

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!