Support

Akeeba Backup for Joomla!

#42595 .JPA files within /Installer folder

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
5.4.2
PHP version
8.2.29
Akeeba Backup version
10.2.1

Latest post by nicholas on Thursday, 08 January 2026 11:38 CST

[email protected]

Hi, my hosting company's monthly housekeeping routinely clears out .jpa files stored on all sites hosted on their servers as it is against their fair usage policy to save backup files online.

There are a number .jpa files within the [joomlaroot]//administrator/components/com_akeebabackup/Installer sub-folder that seem to be required in order for Akeeba to run.as after each housekeeping routine Akeeba Backup broke on all my sites, complaining about those files missing.  So, my hosting company have until recently whitelisted those files for me, but they now refuse to do so and it is not practical for me to re-install Akeeba backup every month so I must either choose a different backup solution or change hosts, neither of which I have the time or energy to do. 

Before I do have to do this is there anyway these files could be renamed with a different file extension so that they can continue to work within my hosts guidelines?

nicholas
Akeeba Staff
Manager

These files are the installer "image" files. Whenever you create a new backup archive, their contents are transcribed into the backup archive. Without them, you cannot take a backup. If that was possible, you'd end up with a backup you cannot restore. The first time these files appeared was 19 years ago when this component was stilled called JoomlaPack. Their path is known and stable for years. I deliberately don't change these files' paths unless there is a very good reason. 

It makes no sense for me to change their extensions for several reasons.

First, it would violate the stable path policy which is used by competent hosts and software developers to avoid issues like the one you are having with your host. Punishing the people who do it right to appease the people who do it wrong is hardly sensible and it would lead to more problems down the road.

Second, changing the extension would run the risk of having the same problem. Maybe tomorrow they will decide tomorrow that .bin, or .img, or .foo –I dunno, I just made stuff up– are not allowed. I won't be playing this stupid game.

Third, the file contents and file extension should match. If I set this to a random extension which might be used by something else it would create other problems that I would be legitimately accountable for. For example, if I stupidly decided to set this to .zip then the reasonable expectation is that this should follow the ZIP format. Since it doesn't, it would create a problem with file scanners which expect to read the contents of ZIP files, therefore get reasonably deleted for being  a "suspicious" file. I would objectively have no reasonable argument to defend this kind of stupid decision. You may say "just use a generic extension like .bin". That's a great idea… except I already know that this will trigger file scanners which brings us back to the first reason I am not changing the paths of these files unless there is a legitimate reason that cannot be worked around in any other way.

Fourth, and most importantly, the problem is caused 100% by your host. It is their problem to fix, not mine. If they decide to delete files from the software you have installed despite the fact you have clearly warned them that this breaks the software, they are quite simply not providing you the service you have paid them to provide.

Fifth, and I want you to brace for this, it is trivial for them to fix their problem. They are obviously using the find command to find and delete the JPA files. It's not that hard adding exceptions to it. Here's how, it took me about 30 seconds to type this:

find /var/foobar -type d -path "*/components/com_akeebabackup/installers" -prune -o -type f -name "*.jpa" -ctime +30 -delete

Yeah. The fix is something that a child who started using Linux more than three days ago can do within a few minutes. Seasoned sysadmins like them should be able to do it with their eyes closed, and hands tied behind their back in half a minute flat. You know what this means? They do not respect you. They treat you like garbage, hoping you are too stupid to ask the right person the right question to expose their malice. Of course, you're not stupid; you're using Akeeba Backup. You asked me, in a public ticket, so here I am telling them in public that they have been exposed.

My advice is to move to a host which respects you. Moving your site is not that hard; you have Akeeba Backup to make the process much easier.

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]

I understand and appreciate what you say.  Unfortunately the hosting company will not budge and I thought it a reasonable question to ask in case there was a simple way around it before having to take drastic action to resolve the trivial issue. I see that there is not.

I'll have to determine which is the least painful route for me, changing hosting companies or changing backup software.

Thank you for your comments.

nicholas
Akeeba Staff
Manager

Brixly has messed with my users, so now I am properly pissed off. Here's a solution for you which beats them at their own stupid game.

Create a CRON job which runs every 9 minutes (use */9 as the minute specifier in the CRON expression, and * for the hour, month, day, and day of week specifiers) and runs the following command:

for FILE in /home/foobar/public_html/components/com_akeebabackup/installers/*.jpa; do BAK_FILE="${FILE%.jpa}.bak"; if [ ! -e "$BAK_FILE" ] || ! cmp -s "$FILE" "$BAK_FILE"; then cp "$FILE" "$BAK_FILE"; fi; done

Then, create another CRON job which runs every day, every minute (use * for all CRON expression specifiers) and runs the following command:

for FILE in /home/foobar/public_html/components/com_akeebabackup/installers/*.bak; do JPA_FILE="${FILE%.bak}.jpa"; if [ ! -e "$JPA_FILE" ]; then cp "$FILE" "$JPA_FILE"; fi; done

Here's the idea.

The first command runs every hour at minute 9, 18, 27, 36, 45, and 54. It copies the original JPA "image" files to a .bak extension e.g. brs.jpa is copied into brs.bak. This happens ONLY if the .bak file does not exist, or is different than the .jpa file.

The second command runs every minute of every hour. It copies the .bak files back to a .jpa extension but ONLY if the corresponding .jpa file does not exist at all.

Problem solved, as long as your backup does not run in those ~58 seconds of the day that the .jpa files might not exist (move your scheduled backups by a minute or two if that happens).

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]

Thank you.  That sounds like an excellent idea and I will certainly give it a try.

I share your frustration with Brixly. This has been a battle with them for many years, and they several times set up the relevant exclusions only to remove them again a few months later. I am well practised in the arguments I have to go through each time to get them re-instated  This time sadly it appears to be a definitive no. They recently merged with (taken over by) a larger hosting company who are completely intransigent on such matters. Not the company it used to be for sure.

I appreciate the time you have taken to come up with a pragmatic work around for me.

nicholas
Akeeba Staff
Manager

You're welcome! 

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!