Skip to content

Commit

Permalink
feat(RequestHandler): emit more info when a rate limit was hit (#5801)
Browse files Browse the repository at this point in the history
* feat(RequestHandler): emit more info when a rate limit was hit

* emit 'None' when no sublimit was hit

Co-authored-by: Antonio Román <kyradiscord@gmail.com>

Co-authored-by: Antonio Román <kyradiscord@gmail.com>
  • Loading branch information
SpaceEEC and kyranet committed Jun 10, 2021
1 parent eb98e33 commit 18ac72e
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/rest/RequestHandler.js
Expand Up @@ -5,7 +5,7 @@ const DiscordAPIError = require('./DiscordAPIError');
const HTTPError = require('./HTTPError');
const RateLimitError = require('./RateLimitError');
const {
Events: { RATE_LIMIT, INVALID_REQUEST_WARNING },
Events: { DEBUG, RATE_LIMIT, INVALID_REQUEST_WARNING },
} = require('../util/Constants');
const Util = require('../util/Util');

Expand Down Expand Up @@ -255,9 +255,6 @@ class RequestHandler {
if (res.status >= 400 && res.status < 500) {
// Handle ratelimited requests
if (res.status === 429) {
// A ratelimit was hit - this should never happen
this.manager.client.emit('debug', `429 hit on route ${request.route}${sublimitTimeout ? ' for sublimit' : ''}`);

const isGlobal = this.globalLimited;
let limit, timeout;
if (isGlobal) {
Expand All @@ -269,6 +266,19 @@ class RequestHandler {
limit = this.limit;
timeout = this.reset + this.manager.client.options.restTimeOffset - Date.now();
}

this.manager.client.emit(
DEBUG,
`Hit a 429 while executing a request.
Global : ${isGlobal}
Method : ${request.method}
Path : ${request.path}
Route : ${request.route}
Limit : ${limit}
Timeout : ${timeout}ms
Sublimit: ${sublimitTimeout ? `${sublimitTimeout}ms` : 'None'}`,
);

await this.onRateLimit(request, limit, timeout, isGlobal);

// If caused by a sublimit, wait it out here so other requests on the route can be handled
Expand Down

0 comments on commit 18ac72e

Please sign in to comment.