Home / Localhost / Node EADDRINUSE

Node.js Error: listen EADDRINUSE address already in use :::3000

Fix EADDRINUSE in Node, Express, Next.js and Vite: find the program using the port, stop it, or start on another port.

The message "Error: listen EADDRINUSE: address already in use :::3000" means something is already listening on that port, often your own app from an earlier run that did not close. Find it, stop it, or use a different port.

What to do, step by step

  1. Look at the end of the error. The number after the colons is the port, such as 3000.
  2. Check for an old copy of your app in another terminal tab, an editor terminal or a background process.
  3. Find the process that holds the port with the command for your system below.
  4. Stop it, then start your app again.
  5. Or avoid the clash: start on another port, for example PORT=3001 npm start.

Commands you can copy

macOS or Linux: find the process on port 3000
lsof -i :3000
macOS or Linux: stop it (replace 12345 with the PID)
kill 12345
Windows: find the PID
netstat -ano | findstr :3000
Windows: stop it (replace 12345 with the PID)
taskkill /PID 12345 /F
Any system with Node: free the port in one step
npx kill-port 3000

Other causes to check

nodemon restarts but the port stays busy
The old process did not exit. Stop nodemon with Ctrl+C once, wait a moment, and start it again. Make sure your app handles SIGTERM and closes its server.
The port is used by a Docker container
Run docker ps and look for a container publishing that port. Stop it with docker stop name.
macOS, port 5000 or 7000
AirPlay Receiver uses these ports. Turn it off in System Settings, or pick another port.
It happens only after a crash
A crashed parent process can leave a child running. Find the PID with the commands above and stop it.

Questions about Node EADDRINUSE

What does EADDRINUSE mean?
It means "address in use". Your program asked the system for a port that another program already holds, so the system refused.
How do I kill the process on port 3000?
Find its PID with lsof (macOS, Linux) or netstat (Windows), then stop it with kill or taskkill. The commands are on this page.
Can two Node apps share one port?
No. Each port can have only one listener. Give each app its own port, or put a reverse proxy in front of them.

Updated 2026-10-11

Free tools that help

Config generators for this

Related pages