-
Notifications
You must be signed in to change notification settings - Fork 4
Troubleshooting
Rob edited this page Jun 19, 2026
·
2 revisions
Work top to bottom — the most common causes are first.
- Have you announced recently? Relay identity caches expire. If you haven't announced in the last several minutes, inbound delivery can fail because relays can't verify your link proofs. The app re-announces periodically, but send a manual announce to be sure.
- Is the other person reachable? Check that their destination appears in your contacts (i.e. their announce has arrived). No announce → no path → no delivery.
- Hop count / path. Over a multi-hop mesh, delivery depends on relays staying up. If a relay restarts, its identity cache is cold until everyone re-announces.
- Clock skew on the sender. LoRa nodes without a real-time clock send "seconds since boot" as the timestamp (small numbers). The app treats any timestamp before 2020-01-01 as "no clock" and substitutes the local receive time — so a message may show your receive time, which is expected, not a bug.
- Duplicate messages? If the same message keeps arriving, the sender's retry queue is firing because it never got a delivery proof. This usually points to a link/proof issue; reconnect and re-announce.
- Stay connected in the background — the app keeps the RNode link alive with a foreground service. Make sure you didn't dismiss/disable its persistent notification, and that the app is allowed to run in the background.
-
Battery optimization / Doze (Android) — this is the #1 cause of dropped links and missed notifications. Exempt the app from battery optimization: Android Settings → Apps → Reticulum → Battery → Unrestricted (wording varies by OEM; Samsung/Xiaomi/Huawei are especially aggressive). The app can also prompt you with
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. - Auto-reconnect — when the RNode drops, the app scans and reconnects with backoff. If it won't re-find the device, toggle Bluetooth off/on, or power-cycle the RNode.
- Range / interference — BLE range is short; keep the RNode near the phone.
- Grant the Notifications permission (Android 13+ prompts on first launch; if you denied it, enable it in system settings).
- Confirm the foreground service is running (its persistent notification should be visible).
- Re-check battery optimization (above) — a Dozed app can't deliver notifications promptly.
- Radio parameters mismatch. The RNode must use the same frequency, bandwidth, spreading factor (SF), coding rate (CR), and be within TX-power norms for the network you're joining. Open the app's RNode config screen, read the current values, and match them to your mesh.
- Wrong transport for the firmware. Older RNode firmwares expose Bluetooth Classic (SPP), not BLE NUS. If BLE scanning never finds the device, pair it in system Bluetooth settings and use the Bluetooth Classic option instead.
- USB permission. On USB, make sure you accepted Android's USB device permission dialog.
See Connecting Over the Internet → Troubleshooting TCP. In short: verify host/port reachability, expect no auto-reconnect at the transport layer, and give announces a minute to populate.
- The map only shows destinations that broadcast lat/lon in their telemetry. Many nodes don't, so an empty or sparse map is normal.
- Map tiles need internet access (OpenStreetMap). Offline, tiles won't load even though node data still updates.
Reinstalling without an identity backup generates a new identity with a new destination hash. Your old address is gone. Always export your identity first — see FAQ → How do I back up my identity?.
- Check the FAQ.
- For bugs, open an issue: https://github.com/thatSFguy/reticulum-mobile-app/issues
- For security issues, follow SECURITY.md — don't file public issues for vulnerabilities.