Support

Akeeba Solo

#42987 Root cause found and fixed — a genuine bug in postUpgradeActions()

Posted in ‘Akeeba Solo’
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
Akeeba Solo version
n/a

Latest post by nicholas on Friday, 29 May 2026 09:22 CDT

gvitry

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 10MiB, please upload it on your server and post a link to it.

refer to ticket #42978 - err-too-many-redirects-after-successfull-login

Hello Nicholas,

With the help of Claude.ai — whose analytical capabilities proved quite useful despite your skepticism — we were able to dig into the code and identify the actual root cause of the issue.

The problem: The postUpgradeActions() method in Solo/Model/Main.php reads update_version from #__ak_params and compares it to AKEEBABACKUP_VERSION. If they differ, it attempts to write the new version, then returns true — triggering a redirect to view=main.

In our case, the MySQL user had no INSERT privilege on #__ak_params. The write silently failed (caught and ignored with // Don't panic), so update_version was never stored. On every subsequent request, the version mismatch persisted, postUpgradeActions() kept returning true, and the redirect loop was infinite.

The fix: Granting proper MySQL privileges and manually inserting the correct update_version row resolved the issue immediately.

The real bug: The silent catch followed by return true regardless of whether the INSERT succeeded is the design flaw. If the write fails, the function should return false to avoid the infinite loop. A simple check after the INSERT, or returning false in the catch block, would have made this immediately diagnosable instead of manifesting as a mysterious redirect loop.

I hope this helps improve the robustness of the code for future users in similar server environments.

Regards,

Laurent

nicholas
Akeeba Staff
Manager

My software, and my support, operate within the realm of common sense. I will not guard against non-sensible environment configurations, nor will I ever assume my client is subjecting the software to the same. A database user which is deliberately configured to create tables and read from tables, but not write into them is well outside the realm of common sense. It is, therefore, wholly unreasonable to call this a bug, or expecting me to assume –let alone help with– a misconfiguration like this.

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!