Environment
SuiteCRM version: 7.x (latest stable)
Server: Ubuntu 22.04 (Hetzner Cloud)
Web stack: Apache 2.4.58 (Ubuntu), PHP 8.2, MariaDB 10.11
Access: SSH + root + www-data ownership verified
Security: SSL (Let’s Encrypt), UFW + Hetzner firewall, Fail2Ban active
Symptoms
When loading the dashboard, dashlets never populate. Browser DevTools shows:
POST https://crm.divineflowai.com/index.php?entryPoint=retrieve_dash_page → 400 (Bad Request)
or 405 (Method Not Allowed). Sometimes Invalid JSON or Forbidden appears.
Logs
SuiteCRM log (/var/www/html/suitecrm/suitecrm.log):
action_get MODULE: Alerts
result is mysqli_result Object
Alerts:before_acl_query
process_full_list_query: result is mysqli_result Object
Apache error.log:
AH01630: client denied by server configuration: /var/www/html/suitecrm/modules/Home/retrieve_dash_page.php
What I’ve Tried So Far
- • Cache and Permissions Reset
- • Checked Apache & PHP Config
- • Verified Entry Point References
- • Created Missing File
- • Quick Repair & Rebuild
- • JS & Browser Debugging
- • Removed Custom Overrides
Current State
All ownerships fixed
Apache modules active
PHP 8.2 compatible
Entry point references exist in registry
Dashlets still not rendering
Invalid JSON + 400/405 persists
Forbidden on direct retrieve_dash_page.php access
Suspected Causes
- Missing or corrupted retrieve_dash_page.php entry point.
- AJAX JSON parsing issue (PHP 8.2 stricter behavior).
- custom/modules/Home/dashlets.php or index.php override missing key variable like $dashboardPages.
- Potential mod_security filter rejecting POST data to /index.php?entryPoint=retrieve_dash_page.
Questions
- Can someone share the correct default contents of /modules/Home/retrieve_dash_page.php for SuiteCRM 7.x?
- Does entry_point_registry.php need specific structure for that entry point?
- Could PHP 8.2 or stricter JSON encoding be the reason for 400 errors?
- Should I fully remove /custom/modules/Home/dashlets.php to restore defaults?
References
Forum Post (2018): Dashboard content not loading — Studio> error loading relationships on some modules
Summary
Everything else in SuiteCRM works fine — Accounts, Contacts, Calls, etc. Only the home dashboard fails to load dashlets after login.
Logs show the entry point being referenced, but response always returns invalid JSON / forbidden.
Any guidance or working file examples would be hugely appreciated.
Thanks in advance!
— Isaac