<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" />

Troubleshooting

Fixes for the problems that come up most often. Where something is a current limitation rather than a fault, this page says so instead of sending you round in circles.

I can't log in

Work through these in order — they are arranged by how common the cause is, not by how hard the fix is.

1. "Invalid login credentials"

This message means the email and password did not match an account. It does not mean the account is locked. Check for a typo, then reset the password:

  1. On the login screen, tap Forgot Password?
  2. Enter the email address associated with your account.
  3. Tap Send Reset Link.
  4. Check your inbox — and your spam folder, which is where it usually is.
  5. Follow the link, set a new password, and return to the app to sign in.

If the reset email does not arrive within a few minutes, the most likely cause is that the address you typed is not the one on the account. Ask whoever invited you (your gym owner, your trainer, or your admin) which address they used.

2. The security check never completes

Sign-in is protected by a Cloudflare Turnstile check. It normally passes without you doing anything. If it spins indefinitely or reports a domain error:

  1. Check that you have a working connection — the check is a network call.
  2. Disable a VPN or strict content blocker temporarily. Both can block the challenge without showing you an error.
  3. Close the app fully and reopen it. The challenge does not resume; it needs a fresh attempt.

If you get an explicit captcha or domain not authorized error rather than a silent hang, that is a configuration fault on our side, not something you can fix. File a support ticket and quote the error text exactly.

3. You are signed in on another device and expected to stay signed in here

Sessions are per-device. Signing in on your phone does not sign you in in a browser, and signing out of one does not sign you out of the other.

Still stuck

File a support ticket with: the exact error text, whether you are on iOS, Android or a web browser, the email address you are trying (not the password), and whether it has ever worked on this device.

I'm not getting notifications

Known limitation

Push notifications do not currently arrive on ANY platform — not iPhone, not iPad, not Android, not the web. This is our defect, not a setting on your device. The app never registers your device to receive push at all, so there is nothing you can grant, toggle, reinstall or reconfigure that will change it. In-app notifications work normally; open the app to see what you have missed.

Read the note above first, because it makes almost everything people normally try irrelevant.

Push does not work on any platform

This is worth stating plainly, because the honest answer saves you an afternoon: no device currently receives push notifications from MyTrainerOS. Not iPhone, not Android. The step where the app registers your device to receive push never runs, so your device is never registered — and a notification cannot be delivered to a device the system does not know about.

That means none of the following will help, and we would rather you did not spend time on them:

  • Granting or re-granting notification permission.
  • Reinstalling the app.
  • Signing out and back in.
  • Excluding MyTrainerOS from battery optimisation.
  • Turning notification categories on and off.

Earlier versions of this article gave an Android self-diagnosis checklist including all of those, and told you that opening Settings → Notifications would register your device. That was wrong. That screen saves your preferences; it does not ask for permission and it does not register anything.

One consequence worth knowing

The Push notifications toggle in your notification settings saves fine, and turning it on does not make push start working. It records what you want to receive, ready for when delivery is fixed. If you switched it on and nothing changed, the toggle is not broken — the delivery behind it is not there yet.

What still works

In-app notifications are unaffected. Open the app and you will see what you have missed. If something is genuinely time-critical — a session starting shortly, a payment that failed — check in the app rather than waiting to be told.

In a web browser

There is no browser push channel, and there was never going to be one. That part is by design rather than a defect.

Quiet hours

Some notification categories respect quiet hours. Once push delivery is working, a notification that arrives in the morning rather than overnight is behaving correctly.

Should you file a ticket?

Not for "I get no push notifications" on its own — it is a known defect and it is on us. Do file one if you missed something that mattered, so we know who to tell when it is fixed, and tell us which notification you expected and when.

My data isn't syncing

Known limitation

If you edit the same record offline on one device while it is also changed elsewhere, the offline edit is currently discarded on reconnect without telling you. Treat offline editing of something a trainer or member may also be touching as unsafe until that is fixed. Separately, the app needs a connection to browse existing data — offline support covers logging new entries, not reading old ones.

What offline support actually covers today: logging new things — workouts, sets, meals and messages. Those are stored on the device and uploaded when you reconnect, with automatic retries. Browsing data you saved earlier is not covered: the app needs a connection to load it.

If something you logged is missing on another device

  1. Open the app on the device where you entered it, with a working connection, and leave it in the foreground for a few seconds. A queued change cannot upload from an app that is closed.
  2. Check the offline banner on that device — it shows how many changes are still pending. If it shows none and the data is still missing elsewhere, the upload has already happened and the problem is elsewhere.
  3. Pull down to refresh on the device where the data is missing.
  4. Check the device clock is set to automatic. A clock that is significantly wrong causes problems that look like sync failures.

Do not fully trust the "Back online — N changes synced" message

That message is shown optimistically and does not currently confirm that the upload succeeded. If something matters, verify it actually appears rather than relying on the message. We would rather tell you that than let you find out the hard way.

Large logs

A long workout can take a few seconds to appear on a second device. That is latency, not loss.

If data is genuinely lost

File a ticket before re-entering it, and say which device it was entered on, roughly when, whether that device was online at the time, and whether anyone else may have edited the same record. Re-entering first is understandable, but it makes the original problem much harder to find.

A payment was declined

Known limitation

The "Manage billing" button on My Subscription fails for two groups: gym owners (whose account type the billing-portal check does not recognise), and anyone who has no Stripe customer record yet — typically because they have never been charged. Both cases return a generic error rather than saying which it was. If you are a trainer who has been billed before, it should work. Also: MyTrainerOS does not currently email members when a card declines — any decline notice you receive comes from Stripe.

Card declines are decided by the bank, not by MyTrainerOS. We are told that the payment failed, but for fraud-prevention reasons we are usually not told why. That is why the steps below start at your bank rather than at our app.

If a one-off payment was declined

  1. Check the card details — number, expiry, CVC, and especially the billing postcode, which is the most common silent mismatch.
  2. Check with your bank. Many banks decline a first payment to a new merchant and then approve the same card on a second attempt once you confirm it was you.
  3. Try a different card to establish whether the problem is the card or the transaction.

If a subscription is past due

A failed subscription charge is retried automatically. You do not need to do anything to trigger another attempt, and attempting to pay manually risks paying twice.

Access is not cut off the instant a charge fails. "Past due" in Settings → My Subscription is the window in which to sort the card out, not a notice that you have already lost access.

If Manage billing returns an error rather than opening the Stripe portal, contact your trainer or gym — they can update the payment details from their side. See the note above for who this currently affects.

A charge on your ledger labelled "No-Show Fee" that was not a no-show

A failed automatic payment is currently recorded with the wrong label and can appear as a no-show fee. If you see one you do not recognise, check the note attached to it before assuming you were charged for missing a session — and tell your trainer, because the amount is real even though the label is wrong.

Members: who to contact

Your payments go to your trainer or gym, not to MyTrainerOS — we do not take a cut and we are not the merchant on your statement. For a refund, a disputed charge, or a question about what you were charged for, contact your trainer or gym directly. Contact us when the payment screen misbehaves.

Trainers and owners: payouts

Payouts are handled through Stripe. If a payment succeeded but the payout has not arrived, check your Stripe dashboard first — a payout can be held for verification reasons that are visible there and not in MyTrainerOS.

You are notified when a member's payment fails. Note that the member is not — so if it matters, reach out to them rather than assuming they have seen it.

My wearable isn't syncing

Known limitation

MyTrainerOS reads health data through Apple Health (iOS) and Health Connect (Android) only. There is no direct device-brand login in the app. If your device does not write into one of those two, its data will not appear — and connecting it is a question for that device's own app, not for MyTrainerOS. Imported workout sessions and body-composition figures are not available yet, on any device.

Start here, because it is the step most people skip. MyTrainerOS does not connect to your watch or ring directly. It reads from your phone's health platform: Apple Health on iOS, Health Connect on Android. The chain is: your device → its own app → Apple Health or Health Connect → MyTrainerOS.

That means a break anywhere upstream looks identical to a MyTrainerOS problem. Check the chain in order:

  1. Does your device's own app show today's data? If not, the problem is between your device and its app. Nothing in MyTrainerOS can fix that.
  2. Does Apple Health / Health Connect show it? Open that app directly and look for today's sleep, resting heart rate, or steps. If it is missing there, your device's app is not writing to the platform — enable that in the device app's settings.
  3. Has MyTrainerOS been granted read permission? Open Settings → Wearable Devices (the screen itself is titled Health Data) and check the status. Permissions are per data type, so it is normal to have steps working and sleep not — go back through the permission screen and confirm each type you expect.
  4. Pull to refresh on that screen to force a re-read.

If your device brand is not listed anywhere in the app, that is expected — there are no per-brand logins. Garmin, Fitbit, Whoop, Oura, Polar and Suunto devices reach us only by writing into Apple Health or Health Connect first, which is configured in that device's own app rather than in ours.

What we read, and what we deliberately do not

We read resting heart rate, heart rate variability, sleep duration and quality, and steps.

We do not show calorie burn from a wearable, and we are not going to. This is a deliberate product decision rather than a missing feature: wearable calorie estimates are unreliable enough that showing them would mislead your training and your nutrition targets. If you are looking for that number, you will not find it here.

Web browsers

Health data is read from the phone's health platform, so it is not available when you use MyTrainerOS in a browser. That is expected.

The app is slow or freezing

  1. Force quit and reopen. Close the app completely — not just to the background — and start it again.
  2. Check for an update. Performance fixes ship regularly; an old build is a common cause.
  3. Free up storage. A phone close to full slows every app on it.
  4. Restart the phone. Unsatisfying, and it genuinely does resolve a class of problems that nothing else will.

If it is one particular screen rather than the whole app, say which screen when you file a ticket. "The app is slow" and "the member list takes 30 seconds when I have 400 members" are different problems with different fixes, and only the second one is actionable.

Still stuck?

If none of the above matches what you're seeing, file a support ticket from the Help section of the app. Each user guide has a section on what to include so the first reply is a fix rather than a question.