Common Trainer Issues
The top 10 "I can't do X" reports we see from trainers, with the actual fix.
"I can't see my client's workouts on Client 360"
Most common cause: the client never had a program assigned, or the program assignment's startDate is in the future.
Fix:
- Open
/clients/[id]→ Schedule tab. - Look for an active program bar in Timeline view.
- If none, click Assign Program.
Second cause: the app/api/clients/[clientId] route had a 2-week silent 404 bug fixed on 2026-04-27 (commit e1e2c4f). If you're running an old cached build, hard-refresh (Cmd-Shift-R / Ctrl-Shift-R).
"WhatsApp button doesn't appear in my client's app"
Most common cause: your trainer profile has no WhatsApp number set.
Fix:
/profile/edit→ WhatsApp Setup → enter number with country code.- Save.
- Client refreshes their app — button appears.
Second cause: the client has multiple trainer relationships and isn't viewing yours. Their app picks the most recent active relationship.
"Programs won't assign — I get an error"
Most common cause: the program is missing required fields. Open the program edit page and confirm cycleSlots[] has at least 1 non-rest slot.
Fix:
/programs/[id]/edit— drag at least one workout template into the 7-day cycle.- Save.
- Try assigning again.
Second cause: the client is archived. Reactivate via Bulk Operations or per-row status change.
"Client invite link gives 'mismatch' error"
Cause: the invitee registered with a different email than the one you typed in the invite form.
Fix: Send a fresh invite to the correct email, or have them register with the original email.
"Free trial expired — my dashboard is locked"
Cause: 30-day free trial ended.
Fix: Visit /pricing and pay for any tier. JWT refreshes automatically on success page; dashboard unlocks within 15 minutes (or hard-refresh).
"Mailgun emails not delivering"
Cause #1: Recipient's mail provider blocked us. Check spam.
Cause #2: Mailgun API key was disabled (we hit this 2026-04-22, fixed 2026-04-23 with a new domain mg.trainer.evofit.io). If you're seeing this on prod NOW, file a bug — we may have rotated again.
Fix: Use the in-app Report Bug button to log it; we can read Mailgun events server-side.
"Habits show in trainer panel but client says they can't log them"
Cause: Client-side habit-log UI is API-only today. The trainer-side configure UI works, but clients have no widget to tap "log" on.
Fix: Have the client send their values via WhatsApp; you can submit on their behalf via API. Full UI is on the roadmap.
"Check-in submission doesn't work for client"
Cause: Same as above — client-side check-in UI is API-only today. Endpoint works.
Fix: Have client send answers via WhatsApp until the form ships.
"PDF report has empty charts"
Cause #1: No measurements logged in the date range. Use a wider range or seed measurements first.
Cause #2: This was a real prod bug fixed 2026-04-20 — global-setup was attributing measurements to the trainer, not the client. The fix shipped. If you're still seeing empty charts, double-check the client has measurements via /analytics → History tab.
"Server is slow / requests timeout"
Cause: Upstash Redis was degraded with no client-side timeout, blocking auth checks for 4500ms per request. Fixed 2026-04-23 with a 300ms timeout + circuit breaker.
Fix: If you're seeing > 1s response times consistently, file a bug — we may need to rotate Redis again.
Where to file a bug
Click the Report Bug floating button (bottom right on every authenticated page). Includes session info + console logs we can read server-side.
