diff --git a/src/index.ts b/src/index.ts index 8dc0684..cce7e1e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,6 @@ import express, { NextFunction, Request, Response } from 'express'; -import axios from 'axios'; -import axiosRetry from 'axios-retry'; +import axios, { AxiosError } from 'axios'; +import axiosRetry, { isNetworkOrIdempotentRequestError } from 'axios-retry'; import { setupCache } from 'axios-cache-interceptor'; import winston from 'winston'; import { @@ -30,7 +30,11 @@ const logger = winston.createLogger({ }); setupCache(axios); -axiosRetry(axios, { retries: 3, retryDelay: axiosRetry.exponentialDelay }); +axiosRetry(axios, { + retries: 3, + retryDelay: axiosRetry.exponentialDelay, + retryCondition: (error: AxiosError) => isNetworkOrIdempotentRequestError(error) || (error.response?.status ?? 0) > 400, +}); const fetcher = new Fetcher(axios, logger);