File tree Expand file tree Collapse file tree 1 file changed +13
-2
lines changed
Expand file tree Collapse file tree 1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -257,11 +257,22 @@ export abstract class MetadataProvider {
257257 /** Handles rate limit HTTP headers and sets the request delay. */
258258 protected handleRateLimit ( response : Response ) {
259259 const retryAfter = response . headers . get ( 'Retry-After' ) ;
260+ const relevantHeaders = Object . fromEntries (
261+ [ ...response . headers ] . filter ( ( [ key , _value ] ) => key . includes ( 'rate' ) ) ,
262+ ) ;
263+ this . log . warn ( `${ this . name } rate limit headers: ${ JSON . stringify ( relevantHeaders ) } ` ) ;
260264 if ( retryAfter ) {
261265 this . log . info ( `${ this . name } rate limit (HTTP ${ response . status } ): Retry-After ${ retryAfter } ` ) ;
262266 const retryAfterMs = parseInt ( retryAfter ) * 1000 ;
263- if ( retryAfterMs > 0 && retryAfterMs < this . requestMaxDelay ) {
264- this . requestDelay = delay ( retryAfterMs ) ;
267+ if ( retryAfterMs > 0 ) {
268+ if ( retryAfterMs < this . requestMaxDelay ) {
269+ this . requestDelay = delay ( retryAfterMs ) ;
270+ } else {
271+ throw new ProviderError (
272+ this . name ,
273+ `Suggested rate limit delay is unacceptably high, cancelling request (Retry-After ${ retryAfter } )` ,
274+ ) ;
275+ }
265276 }
266277 }
267278 }
You can’t perform that action at this time.
0 commit comments