How to retry 5xx requests using axios

axios-retry uses axios interceptor to retry HTTP requests. It intercepts requests or responses before they are handled by then or catch.
Below is the working code snippet.

const axios = require('axios');
const axiosRetry = require('axios-retry');

axiosRetry(axios, {
    retries: 3, // number of retries
    retryDelay: (retryCount) => {
        console.log(`retry attempt: ${retryCount}`);
        return retryCount * 2000; // time interval between retries
    },
    retryCondition: (error) => {
        // if retry condition is not specified, by default idempotent requests are retried
        return error.response.status === 503;
    },
});
 
async function makeHTTPCall() {
    const response = await axios({
        method: 'GET',
        url: 'https://httpstat.us/503',
    }).catch((err) => {
        if (err.response.status !== 200) {
            throw new Error(`API call failed with status code: ${err.response.status} after 3 retry attempts`);
        }
    });
}

makeHTTPCall();

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)