[BUG]: Unable to save anything via Component Builder Configuration #1240
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What Happened?
I tried making config changes (via Options gear). The screen freezes for a bit, then a Chrome dialog about "taking too long" appears. The screen finally returns, but my changes aren't saved.
Looking at the logs (everything.php), the following stack trace occurs when I ENTER the Component Builder Configuration (i.e. without making any changes):
Steps to reproduce the Bug
Simple enter the configuration view (http://localhost:8180/administrator/index.php?option=com_config&view=component&component=com_componentbuilder)
Which Joomla version are you compiling in?
5.3.2
Which PHP version are you compiling in?
8.3
Which Joomla versions are you targeting?
5.x
Which PHP version are you targeting?
8.3
Which Web server is JCB running on?
Apache 2.4.62
Which Relational Database is JCB running on?
Mysql 8.0.42
Which OS is JCB running on?
GNU/Linux 6.10.14-linuxkit
Which JCB version are you using?
5.1.1
Where in JCB did this issue occur?
Other
On which browsers did you encounter the issue?
Chrome
Additional Comments
No response
Hi @tlark,
Please take note of the following items for your attention:
Chrome Compatibility Warning
Kindly review the warning regarding the use of JCB in Chrome:
🔗 Issue #1231 – Comment #38301
While this may not be directly related to your current issue, it's important to be aware of potential complications when using JCB with Chrome.
Related Issue for Reference
Please also take a look at this issue, which may offer additional context or insights:
🔗 Issue #1204 – Comment #36264
We would appreciate it if you could let us know whether following the suggestions provided resolves your issue. If not, we’re more than happy to assist further.
I actually looked over [#1204 (comment)] before submitting this bug.
I do realize I'm using PHP 8.3 instead of 8.2, but I need that version to match what our website uses. Based on the stack trace, I would be surprised if it was a PHP version issue.
Also, I just tried with Firefox 141.0 and got the same stack trace.
does this help: https://git.vdm.dev/joomla/Component-Builder/wiki/PHP-Settings
Unfortunately not. All my php.ini settings are at or above those. And all php modules are installed.
Thanks for following up and for checking the related issues and recommendations; it's clear you've already done some investigation on your side, and we appreciate that.
The issue you're describing sounds like one of those frustrating edge cases we occasionally run into. From experience, when a screen partially loads or changes don't save, it's often related to PHP limits like
max_input_vars
. But since you've already verified your PHP settings are all above the thresholds we recommend, and that all required modules are installed, that helps rule out some of the more common culprits.Still, the stack trace you shared (View not found [name, type, prefix]: ajax, json, Administrator) does suggest something isn't quite resolving the way it should; possibly due to a subtle change in Joomla core behavior, or something environmental we haven't yet encountered ourselves.
Because of how tightly coupled JCB is with both Joomla and PHP, it's unfortunately very difficult for us to reproduce and fix every issue without insight into the specific project or environment setup. In our daily usage across multiple projects (also on Joomla 5.3 and PHP 8.2/8.3), we haven't encountered this particular behavior. But that doesn't mean it's not real or serious; just that the trigger might be unique to your configuration or data.
To be honest, one of the ongoing challenges we face is maintaining JCB across a moving ecosystem. Joomla and PHP evolve quickly, and every change upstream can potentially impact how things work. That's exactly why we built JCB; so that we could focus on maintaining one tool and, through that, help keep all our projects consistent and up to date.
But we can't do this alone.
We'd love to get to the bottom of this with you. If you're up for it, even a few steps of debugging; like temporarily enabling full error reporting, checking which internal call requests that missing AJAX view, or seeing if any custom overrides might be interfering; can go a long way. Every time someone digs in and shares those findings, it makes the whole ecosystem stronger, and often leads to permanent improvements in JCB itself.
We truly value all the contributions; bug reports, fixes, suggestions; and hope you'll consider helping us trace this one further. It might be something small, but the insights gained could benefit many others.
Thanks again for your effort so far, and let us know how you'd like to proceed. We're here to support you however we can.
I'm definitely willing to help. I've got 30+ years of backend software design and implementation, so I think I can gather more debugging info for sure.
I already have Joomla full debug/error logging enabled, but nothing other than the stack trace is logged.
I also have Xdebug installed in the Docker image, so I can set breakpoints via PhpStorm.
Via Xdebug, I captured both the
$_GET
and$_REQUEST
variables at the time of the exception:Also, the URL that causes the 404:
http://localhost:8180/administrator/index.php?option=com_componentbuilder&task=ajax.getCronPath&format=json&raw=true&token=313210ef8a4b938227cc57b7fa4850c5&getType=backup
Maybe something to do with
getCronPath
?Reviewing the source, I see other ajax tasks get registered in the
AjaxController
class via theregisterTask
method, but notgetCronPath
.During a debug session, I manually invoked

$this->registerTask('getCronPath', 'ajax')
. This gave me a different error:Further review shows there is no
case 'getCronPath'
in theswitch
statement of theajax()
method, which caused the above error.The
getCronPath
javascript was part of a feature originally available in JCB 3, allowing users to set up a cron job that would automatically trigger a build of their components at scheduled times. However, this feature was removed during the transition from Joomla 3 to Joomla 4. The main reason for its removal was the risk of conflicts—specifically, a cron-triggered build could occur while a user was actively editing fields or views within a component, potentially resulting in a broken or incomplete build.The fact that the
getCronPath
AJAX request is still being triggered suggests that there may be some remnants of this old feature left in the global configuration of the component. It’s possible that a note reference or a hidden field still exists somewhere in the system. I plan to investigate this further in the near future to see what should be removed to fix this.Thank you once again for your efforts in debugging this issue—we truly appreciate it. We will follow up with more information as we look into it. Additionally, we are planning to reintroduce a more powerful and robust solution to replace this functionality in the future.
After conducting further testing on my side, I was also able to reproduce the issue. However, I found that changes to the component configuration are still being saved successfully. If you’re able to pinpoint the exact location where this javascript is triggered and remove it, let us know if it fixed the issue. Your feedback would be greatly appreciated.
@Lemuel we need to remove the Auto Backup tab from the config area as this is obsolete at this point, and I see we did not remove it, while we already removed the PHP side of this legacy feature.
@tlark removing these lines:
Should also remove this console error, but does this resolve the saving issue?
@tlark you said:
Can you share some insight over here on how you set this up in Docker.
octoleo/octojoom#14 (comment)
I have not really spend must time on Xdebug, I am still an old-school
var_dump
debugger.Which means adding the Xdebug feature to the official Joomla Docker images has not been my highest priority, but I am sure other would really appreciate it we can get that done. I will of course not make it part of the production ready images, but have a new set of extension developer images. Yet any insight you can share to confirm and improve the already suggested implementation will be helpful.
Here are some links to help with using PhpStorm, Chrome with Xdebug:
And here's my Dockerfile I use to build Joomla w/Xdebug:
@Llewellyn After removing those lines, no more stack trace. However, it still freezes for 30-60 seconds and does not appear to save.
I say "appear" since the UI view does not show my changes. Which DB table should contain my changes?