Feature Request: Exponentially Backoff requests after receiving Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
Closed this issue · 4 comments
Is your feature request related to a problem? Please describe:
Looks like myQ wants to throttle, which is reasonable. HOwever, we keep on making requests every 3 seconds for 90 minutes. That's 1800 dead requests, network traffic, and love that myQ won't give us back. ;)
Describe the solution you'd like:
Could we do an exponential backoff retry strategy for requests, e.g. after 3s, 10s, 30s, 90s, 150s, 300s up to that max?
Describe alternatives you've considered:
Ignore it and let traffic be. Disable plugin temporarily (although that deletes myQ devices from homebridge)
Additional context:
Related to #1121 and #1119
Examples of continuous network requests and errors, every 3 seconds.
[10/15/2023, 6:46:30 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:33 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:36 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:39 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:42 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:45 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:48 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:51 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:54 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:46:57 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:47:00 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
[10/15/2023, 6:47:03 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.
While I appreciate the earnestness, you proceed from a false presumption that the error is what it says it is. 😄 This error is part of a new wave of pedantic behavior by the MyQ API, when you don't speak to it just so. It is not in fact us spamming the API. I've been maintaining this API a very long time, and I'm all too aware of its limitations, challenges, quirks, and yuckiness.
This isn't a backoff problem. Spend some time here for some history and context: https://github.com/hjdhjd/myq/blob/99e39834767eff53c933bfdd19b4c31af4714de7/src/myq-api.ts#L15
Thanks for the request - won't be implementing this, as there's nothing to implement here. 😄
Edited for additional commentary: #1126 (comment)
Came here looking for this. Guess I’ll leave as is for now and let the 429s pile up.
As I commented in the other thread, I had to deactivate the plugin overnight to resolve 🤔