Troubleshooting¶
Symptoms ↔ causes ↔ fixes for the issues we see most often. If your problem isn't listed, contact support.
Login & Sync¶
"Invalid email or password" on login¶
- Most common: caps lock on, password recently changed elsewhere
- Try forgot password to reset
- If you're sure the password is right, the rate limit may have triggered; wait 5 minutes and try again
Logged in on web but mobile keeps asking for password¶
- Mobile uses a separate auth token; web sessions don't transfer
- Sign in on mobile with the same email/password
- If it still rejects, your mobile token may have expired — log out and back in
Sync won't catch up¶
- Check Sync → Status — look for stuck items (red icons)
- Tap a stuck item to see the error message
- Tapping Sync → Pull → Full Sync drops local cache and re-fetches everything from server
Mobile App¶
App crashes on launch¶
- Force-quit and relaunch (swipe up in app switcher, swipe up again on AZSuite)
- If still crashing, sign out → sign in
- If still crashing, uninstall + reinstall — your data is on the server
"Local Network" permission denied (iOS)¶
- Settings → AZSuite → Local Network → toggle ON
- Without this, ADS-B receiver can't see Stratux / GTX-345 traffic
Camera permission denied¶
- Settings → AZSuite → Camera → toggle ON
- Required for Scan Plus and squawk photo capture
Tile is missing from dashboard¶
- The tile may have been removed from your customization
- Profile → Tile Settings → check the tile is enabled
- Or Reset to defaults to get the persona-default set
- New tiles ship inactive on existing accounts; auto-add migration runs on next dashboard load (rebuild the app if it's a recent update)
"Text strings must be rendered within a <Text> component" (development)¶
- Pre-existing bug pattern in older versions: a numeric field used in a
conditional renders
0as raw text outside<Text> - Update to the latest app version (fixed in v0.2.5+)
Pilot Logbook¶
Logbook totals don't match¶
- Reload the page; totals re-compute on every load
- If they're still off, check for entries with negative or zero Total Time (can happen with old imports)
- Edit any wrong entries; the totals will reconcile
"Save and Log Track" opens a popout window¶
- Older Safari (pre-15) had a popup-blocker quirk
- Use Chrome / Firefox, or update Safari
Track upload fails with "alt and GPS speed not captured"¶
- Old ForeFlight KMLs sometimes lacked altitude / speed data
- Update ForeFlight to a recent version; new exports include both
- For old tracks, re-export from ForeFlight if possible
- For tracks that have already been uploaded, run
php scripts/reparse_track.php --track-id=Nafter a parser fix
Track speed line is jagged / spiky¶
- ForeFlight tracks are noisy; the parser normalizes them aggressively
- If still too jagged, the underlying source data is the limit
- Try uploading from a different source (G5 / Stratux) for the same flight
- For ForeFlight specifically, the normalization can be configured per-aircraft
"No access to that aircraft" error on track attach¶
- Aircraft was created without an
aircraft_idlink to your user - Caused by old imports; fixed in newer code with COALESCE fallback
- Mass-fix: run the SQL UPDATE patch from your admin (re-link by N-number match)
ADS-B / Radar / Weather (Mobile)¶
No frames arriving in receiver¶
- Check phone is connected to Stratux / GTX-345 Wi-Fi (not your home Wi-Fi)
- Check Local Network permission is allowed (iOS)
- Check the Stratux / GTX-345 itself is powered on with GPS lock
- Restart the receiver from the receiver tile
Frames arriving but Ownship count = 0¶
- Stratux GPS hasn't locked yet
- Check Stratux's GPS LED — should be solid green
- Move the unit to a position with sky view
- Wait 30–60 seconds for the cold-start fix
No traffic on the radar¶
- Verify FRAMES are arriving on the receiver tile (not just heartbeats)
- No traffic could mean no ADS-B-Out aircraft are nearby (rare in CONUS but possible in remote areas)
- Check the traffic and altitude filters — set R to ∞ and Alt to ∞ to see everything
- Check the range setting — at 2 NM you'll only see very close traffic
NEXRAD overlay not appearing¶
- Toggle the ☂ WX button on
- Wait for FIS-B uplinks (only available above ~3000 ft AGL in most areas)
- At very tight scope ranges (<3 NM), the overlay auto-hides — zoom out
- Check the badge above the scope for status messages
"NEXRAD stale" badge¶
- All your NEXRAD grids are older than 10 minutes
- Climb / fly into better FIS-B coverage
- Re-toggle the WX button to refresh
TCAS alerts firing constantly¶
- Check the traffic filter — overly narrow filters can have a target inside the alert envelope but outside the visible scope, which is confusing
- Disable alerts via the 🔔 Alert button if you're in a high-traffic area where they're not adding value
Track Recorder (Mobile)¶
Track not auto-starting on takeoff¶
- The recorder needs GS > 30 kts AND a valid GPS fix (lat/lon)
- If receiving frames but no GPS, the Stratux hasn't locked
- Manual override: Track Recorder tile → ▶ Start Recording
Track ended but I'm still in the air¶
- If GPS fixes stop arriving for 120 seconds, the recorder closes the flight
- Reconnect to ADS-B; if you get a new fix, recording can be manually restarted (will be a separate track in the list)
- Most common in low-altitude no-FIS-B areas
Departure / destination not detected¶
- The endpoints' altitudes were too far off airport elevation, or the field isn't in the OurAirports database (some private grass strips)
- Tap ↻ Re-detect airports on the track row
- Edit manually before upload
Upload fails¶
- Tap ↻ Retry upload — many failures are transient network blips
- If repeatable, the error message in the row tells you what's wrong ("Aircraft not yours" → check the aircraft picker)
Engine Monitor¶
JPI dump won't parse¶
- Confirm the file is the binary
.JPI/.datformat from EzTrends (not a text export) - Some very old EDM 700 firmware uses an unsupported variant; update the EDM if you can
- Email support@... with the file attached for analysis
Engine flights aren't matching pilot logbook entries¶
- AZSuite tries to match by date / aircraft / time-window
- If the JPI clock was off, matches will fail
- Manually link via Pilot Logbook → Entry → Engine data → pick from dropdown
Web (AZSuite)¶
Pilot logbook popout window after "Log Flight"¶
- Was a known bug; fixed in recent code
- If you still see it, browser cache may be stale — hard-refresh (Ctrl-F5 or Cmd-Shift-R)
Mobile uploads not appearing in scan_define¶
- Path mismatch (fixed in v0.2.5+ server)
- Confirm the queue dir on the server:
/var/www/html/LL/Scratch/ImageQue/{N_NUMBER}/ - If photos are in
/var/www/html/LL/uploads/scan_queue/{N_NUMBER}/instead, move them:mv /var/www/html/LL/uploads/scan_queue/N20TU/*.jpg /var/www/html/LL/Scratch/ImageQue/N20TU/
"Coming soon" message when tapping a tile (mobile)¶
- The tile's switch case in
DashboardScreen.tsxdoesn't have an entry - This is a code bug; the tile entry exists but the navigation handler doesn't — file a bug
htmlspecialchars(null) deprecation warning¶
- PHP 8 stricter about null arguments; older code passes null
- Fixed by chaining
?? ''on the value - See
engine_monitor.phpline 2673 for an example fix pattern
number_format(null) deprecation warning¶
- Same root cause; fix with conditional rendering or
?? 0fallback
Object Storage / Wasabi¶
Migration script fails with HTTP 0¶
- Object key likely contains a space or other special character
- Pre-fix: keys with spaces produced malformed URLs
- Fix shipped in
ObjectStorageManager::encodeS3Key— restart migration after updating
Wasabi bucket validation works but uploads fail with 403¶
- SigV4 signature mismatch — check
regionmatches the actual Wasabi region of the bucket (us-central-1etc.) - Check
use_path_style = 1(always works on Wasabi; vhost-style has historical Host-header issues in our code)
Migration takes much longer than estimated¶
- Per-object overhead dominates over throughput for small files
- 42K small files is roughly 10–12 hours regardless of total bytes
- For a one-shot migration, just let it run overnight
Subscription / Billing¶
Charged but features not unlocked¶
- Webhook may be delayed (Paddle / Stripe webhook → AZSuite)
- Wait 5–10 minutes; if still not unlocked, contact support
Voucher code rejected¶
- Check the code is for your region (Paddle is region-aware)
- Some codes are single-use only; check whether a previous account redeemed it
Mobile Push Notifications¶
Notifications not arriving¶
- Check OS notification permission (Settings → AZSuite → Notifications → Allow)
- Check OS Focus / Do Not Disturb mode
- Pull-to-refresh the app to force a token re-registration
- The Profile → Notifications screen lets you re-test by sending yourself a test notification
Performance¶
Web feels slow¶
- Check the activity log for unusually long page loads (> 2 sec)
- Object-storage backed downloads (logbook images) depend on your bucket's
region — Wasabi
us-central-1is fine for US users, slower for EU - For very busy admin dashboards, the page may take 1–2 sec on first load
Mobile lags during recording + radar¶
- The radar's 10 Hz tick + recorder's 0.5 Hz tick + UI render adds up on older phones
- Disable sweep animation if scope feels jerky
- Disable WX overlay at very tight zooms (auto-hides below 3 NM anyway)
When to escalate¶
If you've tried the relevant fix above and the symptom persists, contact support with:
- What you did (steps to reproduce)
- What you expected
- What actually happened (error message verbatim, screenshot if possible)
- App / web version (Profile → About → version number)
- Aircraft N-number if it's an aircraft-specific issue
The more specific the report, the faster we can diagnose.