Plugins that reuse configs (e.g. axios-retry) don't work.
See original GitHub issueDescribe the bug
In case of a retry (e.g. via axios-retry
) the following error is thrown:
https://github.com/3846masa/axios-cookiejar-support/blob/7b85d03ce3134915fb3a08077a6bf3973ea67ef1/src/index.ts#L21-L23
Reason: the same interceptor has already set proper agents to the request config in a previous failed request.
The retryCount on the screenshot is 1 which means that the same requested has already failed once and this is the first retry.To Reproduce
Steps to reproduce the behavior:
run the code below.
Expected behavior
No error.
Code that reproduces the bug
const axios = require("axios");
const { CookieJar } = require('tough-cookie');
const client = axios.create({jar: new CookieJar()});
const axiosCookieJarSupport = require('axios-cookiejar-support').wrapper;
axiosCookieJarSupport(client);
const retry = require("axios-retry");
retry(client);
(async function () {
await client("http://httpstat.us/503");
})()
Environments
- OS: macOS
- Node.js version: 14.20.0
- axios version: 1.1.2
- tough-cookie version: 4.1.2
- axios-cookiejar-support: 4.0.3
Issue Analytics
- State:
- Created a year ago
- Comments:9 (3 by maintainers)
Top Results From Across the Web
axios-retry not working as expected. What is wrong with my ...
A http 404 status code means the request was handled successfully but was invalid.
Read more >retries-property not working when using axios v0.19.0-beta.1
The is being caused by the new mergeConfig implementation they are using. The retry code relies on injecting a axios-retry key into the...
Read more >Top 5 axios-retry Code Examples - Snyk
Learn more about how to use axios-retry, based on axios-retry code examples created from the most popular ways it is used in public...
Read more >axios-retry - npm
Axios plugin that intercepts failed requests and retries them whenever posible.. Latest version: 3.3.1, last published: 6 months ago.
Read more >Axios Async/Await with Retry - DEV Community
Also, don't forget to install it using Terminal. $ npm install retry-axios. This is an example of working code.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@grenik Hello, funny I ran into the same exact issue. I decided to try my hand at a PR to implement a fix for this to allow agents if they are instances of Http(s)CookieAgent. Check it out, let me know if the approach is okay #609
Maybe you can simply check if an http(s) agent is a CookieAgent?
Also, FYI axios-retry removes http(s) agents if they are default ones, but I am not sure if other libs do the same (e.g.
retry-axios
): https://github.com/softonic/axios-retry/blob/9adaa6fe38175e696520fd6ba1b95231b89990f8/es/index.mjs#L113-L118Also, a question: what to do in case of a proxy with authentication? We have a helper function that creates a pre-configured http agent to handle proxy with auth, but we cannot use it.