Skip to content

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 0 as 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=N after 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_id link 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

  1. Check phone is connected to Stratux / GTX-345 Wi-Fi (not your home Wi-Fi)
  2. Check Local Network permission is allowed (iOS)
  3. Check the Stratux / GTX-345 itself is powered on with GPS lock
  4. 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 / .dat format 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.tsx doesn'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.php line 2673 for an example fix pattern

number_format(null) deprecation warning

  • Same root cause; fix with conditional rendering or ?? 0 fallback

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 region matches the actual Wasabi region of the bucket (us-central-1 etc.)
  • 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-1 is 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:

  1. What you did (steps to reproduce)
  2. What you expected
  3. What actually happened (error message verbatim, screenshot if possible)
  4. App / web version (Profile → About → version number)
  5. Aircraft N-number if it's an aircraft-specific issue

The more specific the report, the faster we can diagnose.