Troubleshooting
"OMobile requires Orravo Core" notice
OMobile bails out unless ORRAVO_CORE_LOADED is defined. Install and activate Orravo Core, then activate OMobile again. The submenu lives under the Orravo Core menu (admin.php?page=omobile).
Login returns 429 / "too many attempts"
Five failed logins per identifier triggers a 15-minute lock. Clear the affected row from omobile_login_attempts to unlock immediately, or wait it out.
Push sends queue up but never deliver
Check omobile_push_queue rows. The cron worker requires WP-Cron to run; if your host disables WP-Cron, schedule it externally (wp cron event run --due-now). Also verify the FCM service account JSON parses (look in Settings → Push → FCM v1 for the green status badge).
Refresh token rejected as "reuse"
The client used a refresh token outside the 30-second tolerance window. Force a fresh login. If this keeps happening, audit the client for parallel refresh attempts (a common mistake when multiple request interceptors try to refresh at once).
Crash reports not grouping
Crashes group by fingerprint. If your client sends a different fingerprint per occurrence (for example, including a timestamp), groups will explode. Hash the stack trace alone before posting to /crashes.

