hjdhjd / homebridge-myq

:car: myQ Liftmaster and Chamberlain Plugin for Homebridge https://github.com/nfarina/homebridge
Other
568 stars 43 forks source link

Improve documentation for 429 error #1126

Closed SpencerKaiser closed 9 months ago

SpencerKaiser commented 9 months ago

Preface

Please read... I promise this isn't just another 429 auth issue duplicate!!!


Describe The Problem: There's clearly a ton of users posting about the 429 issue and I think part of the issue is the error that's displayed in the plugin and in the logs...

Here's a summary of where my head is at and why I think there's an issue with the verbiage:

To Reproduce: Trigger the 429 lockout and observe the error in the Homebridge logs or on the plugin's Feature Options tab

Logs:

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.

Environment:


Follow up Questions

hjdhjd commented 9 months ago

Thanks for the creative issue. 😄

It does not extend the lockout. The user doesn't need to take action, other than to walk away for a couple of hours. If you're of the particularly paranoid variety, turn off the plugin for a few hours.

And I currently have no plans to intentionally backoff when a 429 error takes place - there's no meaningful way to tell how much time is left. So the "safe" thing to do would be to wait 60-90 minutes...whether it's truly 10 minutes remaining, or 50 minutes remaining. In a world with a bunch of bad options, I've made the choice to keep retrying until we succeed.

I'll add one more thing: I get that for the technically savvy, a 429 error indicates a certain train of thought, as you've shared. In this instance, it seems to be primarily a strategy by the myQ API to prevent people from experimenting with the API - too many just-slightly-different interactions with the API (~3 or so), and you trigger a lockout. Too many successful logins within a 60 minute period (~10), you trigger a lockout. This is not about rate-limiting in the traditional sense.

SpencerKaiser commented 9 months ago

It does not extend the lockout.

Excellent... think it'd be worth adding this as part of the error message?

I currently have no plans to intentionally backoff ... I've made the choice to keep retrying until we succeed.

Got it, makes sense

This is not about rate-limiting in the traditional sense.

Cool cool, so just more misuse of HTTP status codes 😅 👌

Thanks for the quick reply and thanks for the plugin! Hopefully things will get back to working here shortly... just updated today and made sure my auth credentials were correct 🤞

SpencerKaiser commented 9 months ago

FWIW I left it running for about 6 hours, it was still erroring, deactivated the plugin overnight, and now it works... thoughts?

mattgahs commented 9 months ago

Something else for users to consider (that @hjdhjd has no control over): If you're using another MyQ integration (Scrypted, Home Assistant, etc) in addition to Homebridge, that could be inducing 429s more frequently.

I've been fighting with similar issues on the HA end of things, completely forgetting I also had MyQ in Homebridge for HomeKit. I may end up disabling the Homebridge version and pass the garage door to HomeKit via HA's HomeKit integration.

LokiThorne commented 9 months ago

I started getting this error last night. Deactivated the plugin for the evening and restarted in the morning. Same 429 errors

nickmouaikel commented 9 months ago

same issue as @LokiThorne. Even tried reverting to v3.4.2 and v3.4.1. Same 429 error too many requests. I even shutdown my server overnight and the problem persists. Also when I updated to v.3.4.3, my network activity skyrocketed and myq api was refreshing every 3 seconds or so. I noticed it said this in the documentation, but figured it would stop after 5 minutes or so, but continued past 5 minutes.