Troubleshooting
Installation
"Security token mismatch. Reload the page." Reload once. Persisting? Ensure backend/storage/ is writable (permissions 755, owned by the PHP user).
Requirements page shows a red item. Ask your host to enable the missing PHP extension (all listed ones are standard on cPanel). "storage not writable" → set 755 on backend/storage and backend/config.
Database step fails. Host is usually localhost. The DB user must be added to the database with all privileges (a separate step in cPanel). "already contains AppForge tables" → use an empty database.
/admin shows 404 or the homepage. mod_rewrite/.htaccess issue. Confirm the hidden .htaccess file uploaded (enable "show hidden files" in your FTP client) and that AllowOverride All is active (default on cPanel).
Running on nginx? nginx does not read .htaccess, so both the pretty URLs and the folder protections are missing. Add to your server block:
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ ^/(backend/config|backend/storage|database)/ { deny all; }
location = /backend/config/config.php { deny all; }
Verify afterwards that https://your-domain.com/backend/config/config.php returns 403 — if it shows anything else, stop and fix it before going live.
Admin panel
Locked out after failed logins. Wait 15 minutes (brute-force protection), or use Forgot password (requires SMTP configured).
Forgot-password email never arrives. Configure SMTP in System Settings and use Send Test Email to verify. Check spam.
Uploads fail. Icons/splash: PNG/JPG/WebP, max 2 MB, real image files. Firebase files must be the original downloads from the Firebase console.
Mobile app
White/blank screen at start. The compiled api_base_url is unreachable or not HTTPS-valid. Re-check the Applications page values, re-apply, rebuild.
Changes in admin don't show in the app. Live settings (colors, navigation, translations, WebView toggles) refresh on next app start. Identity-level changes (icon, package, permissions, Firebase, deep links) need a fresh configuration package + rebuild.
Website login doesn't persist. Enable Cookies on the WebView page.
Downloads do nothing. Enable Downloads on the WebView page.
Push works on Android, not iOS. Missing APNs Auth Key in Firebase — see ios-build.md.
Deep links open the browser. The .well-known file is missing/unreachable or the fingerprint/Team ID doesn't match — see deep-links.md.
Builds
getDefaultProguardFile ... no longer supported (Android). Your Gradle/AGP was upgraded past 8.9.x. Restore the pinned versions in android/settings.gradle.kts (AGP 8.9.1) and gradle-wrapper.properties (Gradle 8.12).
iOS signing errors. Open ios/Runner.xcworkspace in Xcode and select your Team under Signing & Capabilities.
License
See license.md. Grace periods mean temporary network problems never take your panel down.
Still stuck?
Admin → Logs usually names the problem (secrets are never logged). Contact support via pmzpw.com with the log lines and your PHP version.