diff --git a/garminconnect/client.py b/garminconnect/client.py index f3e257e3..27882fdf 100644 --- a/garminconnect/client.py +++ b/garminconnect/client.py @@ -592,7 +592,8 @@ def resolve_mfa(name: str) -> tuple[str | None, Any]: if rate_limited_count == len(strategies): raise GarminConnectTooManyRequestsError( "All login strategies rate limited (429). " - "Try again later or check your IP/network." + "Garmin may be blocking this client or network rather than " + "rate limiting; try again later or from another network." ) raise GarminConnectConnectionError( "All login strategies exhausted: " @@ -679,7 +680,8 @@ def _do_mobile_login(self, sess: Any, email: str, password: str) -> None: if r.status_code == 429: raise GarminConnectTooManyRequestsError( - "Mobile login returned 429 — IP rate limited by Garmin" + "Mobile login returned 429 — rate limited or blocked by Garmin " + "(can be triggered by the client fingerprint, not only the IP)" ) if r.status_code == 403: