fix: Distinguish rate limiter error (#12479)

This commit is contained in:
Tom Moor
2026-05-26 20:29:56 -04:00
committed by GitHub
parent 2c3e736eb3
commit 84c00cfae7
+16 -15
View File
@@ -69,23 +69,24 @@ export function defaultRateLimiter() {
try {
await limiter.consume(key);
} catch (rateLimiterRes) {
if (rateLimiterRes.msBeforeNext) {
ctx.set("Retry-After", `${rateLimiterRes.msBeforeNext / 1000}`);
ctx.set("RateLimit-Limit", `${limiter.points}`);
ctx.set("RateLimit-Remaining", `${rateLimiterRes.remainingPoints}`);
ctx.set(
"RateLimit-Reset",
new Date(Date.now() + rateLimiterRes.msBeforeNext).toString()
);
Metrics.increment("rate_limit.exceeded", {
path: fullPath,
});
throw RateLimitExceededError();
} else {
if (rateLimiterRes instanceof Error) {
Logger.error("Rate limiter error", rateLimiterRes);
return next();
}
ctx.set("Retry-After", `${rateLimiterRes.msBeforeNext / 1000}`);
ctx.set("RateLimit-Limit", `${limiter.points}`);
ctx.set("RateLimit-Remaining", `${rateLimiterRes.remainingPoints}`);
ctx.set(
"RateLimit-Reset",
new Date(Date.now() + rateLimiterRes.msBeforeNext).toString()
);
Metrics.increment("rate_limit.exceeded", {
path: fullPath,
});
throw RateLimitExceededError();
}
return next();