I was trying to do an upgrade, just one version higher than what is installed (both versions being supported by my version of PHP), and both manual update and the Update Wizard would not finish properly (I would get the newer version but the Administration panel was empty).
So I checked the logs and there are some PHP Fatal errors relating to some module that doesnāt ring any bell to me.
I thought I would try to remove that module, but I see the Module Loader shows an empty list. Should it not list all the modules, including the ones that come with the installation package? Even if thatās not the case, it should show this module, as that subfolder in modules is not present in any installation package (looked in the version that is currently installed and the one that I tried to upgrade to) so it must be something that was installed separately.
How can I see a complete list of installed modules and remove what I donāt need?
Hi @bogdanm
Looks like the upgrade didnāt finish cleanly ā possibly due to a custom or broken module.
If the Module Loader is blank, itās often a permission or cache issue. Try clearing cache and checking folder permissions.
To find installed modules, check the modules/ and custom/modulebuilder/packages/ folders, or share the error logs with me ā Iāll help you spot and safely remove whatās not needed.
For the Module Loader, I checked the rights on the files and they are owned by the user that runs the web server and write permissions everywhere.
I donāt know how to properly clean the cache. Do I go through all the subfolders in the cache/ folder and delete all files? Anything that needs to be deleted from the database too?
In modules/ there are plenty of subfolders. I tried to just delete the folder where the PHP error showed up and that made things worse. Even deleting stuff from the database related to that module didnāt make things better. I just reverted to the backup prior to the upgrade attempt.
Hereās a line from the log file:
[Wed Jun 18 09:53:09.624511 2025] [php7:error] [pid 657286] [client x.x.x.x:32192] PHP Fatal error: Uncaught Error: Call to
undefined method Basic::Basic() in /var/www/suitecrm/modules/AM_ProjectHolidays/AM_ProjectHolidays_sugar.php:71\nStack trace:\n#0 /
var/www/suitecrm/modules/AM_ProjectHolidays/AM_ProjectHolidays.php(44): AM_ProjectHolidays_sugar->AM_ProjectHolidays_sugar()\n#1 /v
ar/www/suitecrm/data/BeanFactory.php(123): AM_ProjectHolidays->AM_ProjectHolidays()\n#2 /var/www/suitecrm/data/BeanFactory.php(254)
: BeanFactory::getBean(āAM_ProjectHolidā¦ā)\n#3 /var/www/suitecrm/modules/ACL/install_actions.php(52): BeanFactory::newBean(āAM_Pr
ojectHolidā¦ā)\n#4 /var/www/suitecrm/modules/UpgradeWizard/index.php(277): include(ā/var/www/suitecā¦ā)\n#5 /var/www/suitecrm/inc
lude/MVC/View/SugarView.php(824): include_once(ā/var/www/suitecā¦ā)\n#6 /var/www/suitecrm/include/MVC/View/views/view.classic.php(
72): SugarView->includeClassicFile(āmodules/Upgradeā¦ā)\n#7 /var/www/suitecrm/include/MVC/View/SugarView.php(210): ViewClassic->di
splay()\n#8 /var/www/suitecrm/include/MVC/Controller/SugarController.php(432): SugarView->pro in /var/www/suitecrm/modules/AM_Proje
ctHolidays/AM_ProjectHolidays_sugar.php on line 71, referer: http://crm.mydomain.tld/index.php
I was trying to upgrade from 7.11.23 to 7.12.8 using the upgrade package. I tried with the Wizard and from the command line with the same error.
That AM_ProjectHolidays/ folder in modules/ is not present in the full instalation package for 7.11.23 and I donāt know where it came from. Itās an old install that was upgraded multiple times throughout the years.
Thank you in advance for any help you can provide.
Hi @bogdanm
The error youāre seeing is due to an outdated custom module called AM_ProjectHolidays thatās using old PHP code. The method āBasic::Basic()ā needs to be updated to the newer ā__construct()ā style. This is likely whatās breaking the upgrade.
Hereās what you can do:
Fix the module:
In the file āAM_ProjectHolidays_sugar.phpā, find the constructor and replace it with this:
āfunction __construct() { parent::__construct(); }ā
Clear the cache:
Yes, you can delete everything inside the ācacheā folder (but donāt delete the folder itself). Thereās no need to remove anything from the database for this step.
Why the Module Loader is empty:
Thatās normal. It only shows modules that were installed using the Module Loader (ZIP files). Manually added or older custom modules like this one wonāt show there.
I can help you fix or remove the module so the upgrade works properly. Let me know what youād prefer.
Regarding the cache, do I just delete the files in there or can I delete the folders too? (there are 14 of them)
I understand now, the modules I have currently are either core modules that are not supposed to be removed or old custom ones that were installed manually, so they would not show up in Module Loader.
Now Iām wondering if I even need the AM_ProjectHolidays module. Is there a way to check if a module is used anywhere? If it is not, I would rather remove it than modify it. What is the procedure for removing a custom module? I tried deleting the folder in modules/ and deleting the tables containing that name from the database but that seemed to make things worse.
Iāve checked for which files contain that name and here is the list:
Since I could not find the constructor function you mentioned, I procedeed to remove all mentions of that module from the places you indicated and also found it in some other places. After clearing the cache and doing the rebuilds, the upgrade process finished cleanly. I have not removed the tables from the database yet, but I suppose itās safe to do that now?
I upgraded to 7.12.8 and after that to 7.12.12 (it was the latest upgrade package available). I see the last version in the 7.12 branch is 7.12.14, is there an easy way to upgrade to it without an upgrade package?
@bogdanm Good to hear the upgrade went well after removing that module!
You can delete the database tables now if youāre sure the module isnāt used ā just keep a backup first, to be safe.
For upgrading from 7.12.12 to 7.12.14, youāll need the upgrade package from SuiteCRMās website. Thereās no automatic update for minor versions, so you can apply it via the Upgrade Wizard or command line like before.
If you want, Iām happy to help you with this last step. Just let me know!
@Urvi Iāve removed the tables from the database and I donāt see any impact. They were empty anyway.
Regarding the upgrade, I donāt see any upgrade package from-7.12.x-to-7.12.14
The newest one I see is from-7.12.x-to-7.12.12 which Iāve used after Upgrade-7.11.x-to-7.12.8. Anyway, itās not very important to me as I plan to upgrade my linux web server to PHP 7.4, which will allow me to move to SuiteCRM-7.13.
Youāre right ā thereās no official upgrade package from 7.12.12 to 7.12.14, so if youāre planning to upgrade to PHP 7.4 and move to 7.13, thatās a good move.
Good question. I guess Iāll find out when I upgrade to PHP8.
But since 7.14 does not support any version of PHP7 I donāt know how the upgrade process is supposed to be done. The web wizard is probaby out of the question as 7.13 wonāt run on PHP8. The command line method should work I presume.