Common Trainer Issues

The top 10 "I can't do X" reports we see from trainers, with the actual fix.

trainer guide/
What this is for: Self-serve fixes for the most common confused-trainer moments.

"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:

  1. Open /clients/[id] → Schedule tab.
  2. Look for an active program bar in Timeline view.
  3. 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:

  1. /profile/edit → WhatsApp Setup → enter number with country code.
  2. Save.
  3. 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:

  1. /programs/[id]/edit — drag at least one workout template into the 7-day cycle.
  2. Save.
  3. 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.

Was this article helpful?