Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions garminconnect/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -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: "
Expand Down Expand Up @@ -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:
Expand Down
Loading