# Error: listen EADDRINUSE: address already in use :::3000

**Code:** `EADDRINUSE` · **Category:** Node.js · **Seen on:** Node.js, Linux, Windows

Another process is already listening on that port.

## Meaning

Only one process can bind a port. Usually an old instance of your server (or a zombie from a crashed dev session) is still running.

## Common causes

- Previous server instance still running
- Another app using the same port
- Nodemon/watch restarting before the old process exited
- Docker container publishing the same port

## Quick fix

1. Find and stop the process: `lsof -i :3000` then `kill <PID>`
2. Use a different port: `PORT=3001 npm start`
3. Stop containers: `docker ps` → `docker stop <id>`

## Detailed fix by platform

### Linux

1. Find the process:

```bash
lsof -i :3000          # macOS / Linux
sudo ss -ltnp | grep :3000
kill <PID>
```


### Windows

1. `netstat -ano | findstr :3000` then `taskkill /PID <pid> /F`.

## How to diagnose

1. **Port** — Which port?
2. **Owner** — Which process holds it?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/nodejs/eaddrinuse-address-already-in-use)
