I discovered that sites that use pygithub to wait for the rate limit reset time were performing incorrect arithmetic between an UTC timestamp and a local timestamp. This led to the sleep taking hours more time than they should.
Some requests are made via pygithub and some via our own API + requests; the requests code was right while the API code was wrong. This made the cron task fail sometimes, depending whether the first rate-limited result was via API or via raw requests.
I discovered that sites that use pygithub to wait for the rate limit reset time were performing incorrect arithmetic between an UTC timestamp and a local timestamp. This led to the sleep taking hours more time than they should.
Some requests are made via pygithub and some via our own API + requests; the requests code was right while the API code was wrong. This made the cron task fail sometimes, depending whether the first rate-limited result was via API or via raw requests.