Could not proxy request /pusher/auth from localhost:3000 to http://localhost:5000 (ECONNREFUSED)

Reactjs

Reactjs Problem Overview


I am trying to create a chat app using reactJS and pusher, i am getting this error-

> Could not proxy request /pusher/auth from localhost:3000 to > http://localhost:5000 (ECONNREFUSED)

in package.json file i have set proxy as-

"proxy": "http://localhost:5000"

and my localhost is defined as 127.0.0.1 in /etc/hosts file.
I have also checked for the port availability using netstat, but these all seems to be correct. Can anybody help?

Reactjs Solutions


Solution 1 - Reactjs

I had a same problem in my React App and I fixed it by just adding "/" after the port number in package.json file (so now it's: "proxy": "http://localhost:5000/";)

Solution 2 - Reactjs

I faced a similar issue but in Mac machine. I changed localhost to 127.0.0.1 and that worked for me.

For windows:

"proxy": {
  "/auth/google": {
    "target": "localhost:5000"
  }
}

For Mac:

"proxy": {
  "/auth/google": {
    "target": "http://127.0.0.1:5000"
  }
}

Solution 3 - Reactjs

In your server package.json add --ignore client to your "start" or "server" scripts. So it would look like this:

 "scripts": {
 "start": "node index.js",
 "server": "nodemon index.js --ignore client"
 }

Solution 4 - Reactjs

In server directory

npm install --save http-proxy-middleware

then create a file with this name : setupProxy.js in src directory of client react folder

enter image description here

then add the following

enter image description here

const proxy = require("http-proxy-middleware");
module.exports = function(app) {
  app.use(proxy("/api/**", { // https://github.com/chimurai/http-proxy-middleware
    target: "http://localhost:5000",
    secure: false
  }));
};

In proxy configuration make sure you are matching any path with double ** not only *

Note: you are not going to require this proxy anywhere else just like that

Note: remove any other proxy settings in package.json For more check this reference

Solution 5 - Reactjs

I think You have not start your Back end server. Try start both Back end and Front end server concurrently. Just simply run npm start in both back end and front end.

Solution 6 - Reactjs

In your node module include

{
...
  "proxy": "http://127.0.0.1:5000"
}

Where the ... simply means you should append the proxy ip to it.

Also, if you are using axios, doing axios.post('api/users') works and not axios.post('/api/users')

Solution 7 - Reactjs

For those who are using Docker, if your docker-compose.yml looks like:

services:
  app:
    ...
    depends_on:
      - api
    ports:
      - 3000:xxxx
    ...
  api:
    ...
    ports:
      - 5000:xxxx
    ...

Then we should set the proxy URL to

  "proxy": "http://host.docker.internal:5000"

Solution 8 - Reactjs

I have similar issue. The problem was that server was listening on ipv6 ::1 address and the proxy was connecting to ipv4 127.0.0.1

I changed both addresses from localhost to 127.0.0.1

Solution 9 - Reactjs

Use "proxy":"http://localhost:PORT_NUMBER/"; in package.json

and in axios backend call route like use axios.get("api/user/getinfo") instead of axios.get("/api/user/getinfo");

Solution 10 - Reactjs

In package.json file just add "/" after the port number and it should work fine.

"proxy": "http://localhost:5000/"

Solution 11 - Reactjs

I think Server not working properly, you should run client and server concurrently for that add following procedures in package.json file

  1. Install concurrently

    npm install concurrently --save

  2. configure client and server

    "server": "nodemon server.js", "client": "npm start --prefix client"

  3. configure concurrently

    "dev": "concurrently "npm run server" "npm run client""

Solution 12 - Reactjs

if you are not using concurrently at your server side then simply run each front-end and back-end separately such that server side should run first and client side last.

Solution 13 - Reactjs

Changing localhost to [::1] solved my problem.

Taken from here https://forum.vuejs.org/t/proxy-error-with-vue-config-js-and-axios/110632/4?u=mahmoodvcs

Solution 14 - Reactjs

If you can't connect to localhost on port 5000 via telnet (you can download and use PuttY if you don't have telnet installed), then that means that server isn't running.

If you're using a Windows machine, go to your package.json for the server that is running on port 5000 and change this line:

"start": "./node_modules/.bin/concurrently \"./node_modules/.bin/nodemon\" \"npm run client\"",

To this:

"start": "./node_modules/.bin/concurrently \"npm run server\" \"npm run client\"",

Watch your build messages and you should see something similar to the following:

[0] 🌎  ==> API Server now listening on PORT 5000!
[1] Starting the development server...
[1]
[1] Compiled successfully!
[1]
[1] You can now view chat app in the browser.
[1]
[1]   Local:            http://localhost:3000/
[1]   On Your Network:  http://192.168.1.118:3000/
[1]
[1] Note that the development build is not optimized.
[1] To create a production build, use yarn build.

Solution 15 - Reactjs

My issue was trying to run my react project with docker containers open.

Change the ports or shut down the containers.

Solution 16 - Reactjs

In my case the problem was that I have been accessing the PORT by the wrong name, i had it PORT instead of SERVER_PORT which was my correct environment variable name. So this problem means that there is a something wrong in your code, in my case the port on which the server should be running was undefined.

Solution 17 - Reactjs

This has something to do with default settings of create-react-app.

I found a solution from Github Issue. Read the response by danielmahon on 15 Mar 2018

"proxy": {
    "/api": {
      "target": "https://localhost:5002",
      "secure": false
    }
  },

Solution 18 - Reactjs

Proxy error: Could not proxy request /signup from localhost:3000 to http://localhost:8282/. See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).

I got the same issue and I just solved it by only restart both of the server, you need to run both of the server running.

Thanks me ltr:)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMaanuView Question on Stackoverflow
Solution 1 - ReactjsDennisView Answer on Stackoverflow
Solution 2 - ReactjsAnkit ChaurasiaView Answer on Stackoverflow
Solution 3 - ReactjsEgaView Answer on Stackoverflow
Solution 4 - ReactjsAhmed YounesView Answer on Stackoverflow
Solution 5 - ReactjsGeo TechView Answer on Stackoverflow
Solution 6 - ReactjsNkoro Joseph AhamefulaView Answer on Stackoverflow
Solution 7 - ReactjsDevoView Answer on Stackoverflow
Solution 8 - ReactjsFantastoryView Answer on Stackoverflow
Solution 9 - ReactjsHrishikesh BaidyaView Answer on Stackoverflow
Solution 10 - ReactjsPiyush ChandraView Answer on Stackoverflow
Solution 11 - ReactjsKARTHIKEYAN.AView Answer on Stackoverflow
Solution 12 - ReactjsMatiullah MosazaiView Answer on Stackoverflow
Solution 13 - ReactjsMahmood DehghanView Answer on Stackoverflow
Solution 14 - Reactjssherman.goreView Answer on Stackoverflow
Solution 15 - Reactjsuser3152459View Answer on Stackoverflow
Solution 16 - ReactjsMuhamed KrasniqiView Answer on Stackoverflow
Solution 17 - ReactjsHarshit GangwarView Answer on Stackoverflow
Solution 18 - Reactjssaqib diarView Answer on Stackoverflow