Uploading an image via the Blog Media tab on an article throws a fatal PHP error during thumbnail generation and returns a 500 error, even though the original file itself uploads successfully.
Environment
- Helix Ultimate version: 2.2.9
- Joomla version: 4.4.14
- PHP version: 8.3
- Server: OVH shared hosting
- Editor: JCE (also tested effect suspected unrelated to editor choice)
- Site: compagnie-chaloupe.com
Issue
Uploading a JPG image via Article → Blog Options → Blog Media (Featured Image) fails with a 500 Internal Server Error. This started recently, after upgrading Helix Ultimate through the 2.2.7 → 2.2.9 security release line. It worked correctly in June on this same install.
Steps to reproduce
- Open an existing article for editing (Content → Articles → Edit)
- Go to the Blog Options tab
- Upload a JPG image (tested with a clean, non-progressive JPG exported via Photoshop "Export for Web", filename with no spaces or special characters, e.g.
stagetheatre2.jpg)
- The request is sent via AJAX (
blog-options.js) as a POST to index.php?option=com_content&view=article&layout=edit&id=X
- Server returns HTTP 500
Confirmed NOT the cause (ruled out during troubleshooting)
- Folder permissions: all
images/YYYY/MM folders are 755, same owner, no discrepancy between working (June) and failing (July) folders
.htaccess: custom hardening rules only target com_ajax requests with plugin=nrframework, unrelated to Helix's own com_ajax&helix=ultimate endpoint
- Disk quota: checked, not the issue
- Image format: reproduced with multiple clean JPGs exported at Baseline/RGB, not just one problematic file
- A
_spmedia_thumbs subfolder IS created on each attempt, confirming the original file upload step succeeds; the failure happens during thumbnail generation afterward
Root cause identified
Enabling debug mode and inspecting the raw AJAX response body directly (browser DevTools → Network → Response) revealed the actual fatal error, which Joomla's own debug console never surfaces because the crash happens before Joomla can render its debug bar for that request:
Call to undefined method Joomla\Filesystem\File::getExt()
This indicates the Helix Ultimate blog media thumbnail generation code (likely in plugins/system/helixultimate/, related to the Blog/Media upload classes referenced in helixultimate.php) is calling Joomla\Filesystem\File::getExt(), a method that has been removed from Joomla core in this version. The upload of the original file succeeds, but the subsequent thumbnail generation step fails, leaving the image unattached to the article with no visible error in the Joomla admin interface itself (only a 500 in the browser Network tab).
Request
Could you confirm whether this method call is present in the current codebase and needs to be replaced with a native pathinfo()/strtolower(pathinfo($file, PATHINFO_EXTENSION)) equivalent, or restore compatibility for Joomla versions where File::getExt() no longer exists? Happy to provide the full HTML error page or additional server logs if useful.
Thanks for looking into this.