Troubleshooting

SymptomChecks
Blank / 500 pagestorage/logs/laravel.log; APP_DEBUG=true briefly on a non-public host; PHP version 8.4+
Permission denied writing storageRun bash deploy/harden-permissions.sh; ensure PHP-FPM user owns storage/ and bootstrap/cache/
License features missing / fail-closedConfirm COAPTIVE_LICENSE_FILE path, place signed JSON, leave client HMAC empty unless instructed; php artisan config:clear; check License in CP
SQLite errorsDB_CONNECTION=sqlite; touch database/database.sqlite; directory writable by PHP
Old config / routes after changephp artisan config:clear · route:clear · view:clear
Assets 404php artisan storage:link; confirm nginx docroot is public/; after updates merge live public/assets/
Google Maps blank on Page Builder mapSet GOOGLE_MAPS_API_KEY in .env, config:clear; restrict key by HTTP referrer in Google Cloud; Page Builder shows env status when Google provider is selected
Forms not emailingForm notification enabled; Tools → Email configured; check storage/logs
Form webhook not firingHTTPS URL only; webhook enabled on form; check storage/logs/laravel.log — submission still saves even when webhook fails
CAPTCHA failuresTools → CAPTCHA keys; “Public forms” / login toggles; private settings file present
Scheduled backup not uploadingTools → Backup / Export schedule; verify S3/Azure env vars; cron runs cms:backup-export; check logs
Sign in still in header when “Show Sign in in the footer” is onConfirm CMS release includes the header fix (loginInFooter(config('coaptive-cms.site'))). If the site was cloned from default, rewrite page frontmatter site: default → site: {CMS_SITE} under content/sites/{CMS_SITE}/.

Still stuck? Contact Code 44 with your license id, app version (CP Overview or package version), and a redacted log excerpt.