Your software
My Mautic version is: 5.1
My PHP version is: 8.1
My Database type and version is: mariadb operator 11.8.2-MariaDB-ubu2404
Your problem
My problem is: Landing pages using GrapesJS builder fail to load with “Error: No valid HTML template found”. The builder interface shows a blank page instead of loading properly. Browser console shows 404 errors for: https://mautic.mydomain.com/s/grapesjsbuilder/page/new_[hash]?template=blank However, the routes are registered as /s/s/grapesjsbuilder/ (with double /s/): - grapesjsbuilder_upload: /s/s/grapesjsbuilder/upload - grapesjsbuilder_delete: /s/s/grapesjsbuilder/delete - grapesjsbuilder_assets: /s/s/grapesjsbuilder/assets - grapesjsbuilder_builder: /s/s/grapesjsbuilder/{objectType}/{objectId} Manually accessing Mautic DOES work and returns data. The GrapesJS plugin Config/config.php defines routes with ‘/s/grapesjsbuilder/’ prefix, but Mautic’s RouteLoader.php adds an additional ‘/s/’ prefix to all secure routes, resulting in ‘/s/s/grapesjsbuilder/’. Email builder with GrapesJS works fine - only landing pages are affected.
These errors are showing in the log:
I’m not sure what log to find…
Steps I have tried to fix the problem:
- Verified GrapesJS plugin is installed and enabled in database (plugins table shows is_missing=0) 2. Cleared Mautic cache multiple times (php bin/console cache:clear) 3. Verified theme files exist (themes/blank/config.json and templates are present) 4. Checked routes with debug:router - routes show /s/s/grapesjsbuilder/ instead of /s/grapesjsbuilder/ 5. Attempted to remove /s/ prefix from plugin config.php paths - this broke Mautic completely 6. Modified JavaScript (builder.js) to generate /s/s/grapesjsbuilder/ URLs to match registered routes 7. Edited both source and compiled (dist/builder.js) JavaScript files 8. Cleared browser cache completely and tested in incognito mode 9. Verified blank theme config.json includes “builder”: [“legacy”, “grapesjsbuilder”] 10. Checked that #builder_url field contains correct URL value 11. Confirmed the issue persists across different browsers The root cause appears to be a mismatch between: - JavaScript generating URLs with single /s/ prefix - Symfony routes registered with double /s/s/ prefix - Uncertainty about whether /s/s/ is intentional or a bug in route registration
Needed:
Has anyone dealt with this? How has it be resolved to work correctly for both email and landing pages.