Thank you for checking those. Ruling out a CDN and caching narrows it down a lot.
I need to explain what this message really means, because it's misleading here. Akeeba Backup checks a security token at two points. The first check runs when the backup starts, against Joomla's own anti-CSRF token. That's what I was suspecting and having you check.
The second runs on every later backup step, against a separate token that Akeeba Backup creates when the backup starts and keeps in your Joomla session.
Both checks show the same Joomla message when they fail. Based on what you already checked, and the fact that the backup log you posted earlier shows the backup running, the first check very likely passes. Therefore, I am now operating under the assumption that it's the second one that fails. It would also explain why changing the session timeout made no difference: this isn't the Joomla session expiring.
There are two ways the second check can fail:
- The server does not keep the token in your session between the first request and the next one. This depends on how your server stores sessions. It is the most likely explanation when the same site works on one server and not on another.
- The very first backup request fails on the server, for example because IIS stops the PHP process when it hits its FastCGI time limits. Your browser then never receives the token. Akeeba Backup automatically retries the step a few times, and each retry fails the token check. By the time you see an error, the real error has been replaced by the token message.
To tell which one it is, please do the following.
- Go to System, Global Configuration, Server and look at Session Handler (under Session Settings). Please tell me what it is set to on your production site and on your staging site. Also tell me if Shared Sessions is enabled on either one.
- In Akeeba Backup, click Configuration and find the Fine tuning section. Set Resume backup after an AJAX error has occurred to No and save. Then try a backup again and tell me the exact error message you get. If the message is different now, that is the real error.
- If you can, open your browser's developer tools (F12) and go to the Network tab before clicking Backup Now. When the error appears, find the first request with ajax=start in its URL and tell me its HTTP status code and what it returned. Please also tell me whether the request that failed contained ajax=start or ajax=step.
- Go to View Log, choose the log of this latest attempt and zip it. Then attach the ZIP file to your reply.
- Did backups work on this production server with Akeeba Backup 10.3.6 or earlier? If you upgraded straight to 10.4.0 from an older version, which version was it?
Once I have this I can tell you exactly what goes wrong and how to fix it.
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!