Error DictionaryLast Updated: Jan 31, 2026

Fix: EADDRINUSE: address already in use :::3000

Step-by-step fix for 'EADDRINUSE: address already in use' port conflict when starting OpenClaw.

This page helps you fix the port conflict error when starting OpenClaw.


🔴 Raw Error Log (What You Actually See)

When you run npm run start, OpenClaw crashes immediately with:

Error: listen EADDRINUSE: address already in use :::3000
    at Server.setupListenHandle [as _listen2] (node:net:1372:16)
    at listenInCluster (node:net:1420:12)
    ...
npm ERR! code ELIFECYCLE
npm ERR! errno 1

If your error looks like this, you are in the right place.


🔍 Why This Happens (Root Cause)

Another program is already using Port 3000.

OpenClaw needs Port 3000 to serve its dashboard. If another application (like React dev server, another bot instance, or Grafana) is already running on that port, OpenClaw cannot start.


✅ How to Fix It (Step-by-Step)

Mac / Linux

# Step 1: Find what's using port 3000
lsof -i :3000

# Output example:
# COMMAND   PID   USER   FD   TYPE  DEVICE  NODE NAME
# node    12345  user   21u  IPv6  0x1234  TCP *:3000 (LISTEN)

# Step 2: Kill the process (replace 12345 with actual PID)
kill -9 12345

Windows (PowerShell)

# Step 1: Find what's using port 3000
netstat -ano | findstr :3000

# Output example:
# TCP    0.0.0.0:3000    0.0.0.0:0    LISTENING    12345

# Step 2: Kill the process (replace 12345 with actual PID)
taskkill /PID 12345 /F

Option B: Run on a Different Port

If you can't stop the other program, tell OpenClaw to use a different port:

Mac / Linux

PORT=3001 npm run start

Windows (PowerShell)

$env:PORT="3001"; npm run start

Then access OpenClaw at http://localhost:3001 instead.


🔎 Verify the Fix

After applying the fix, run:

npm run start

✅ Expected Result

OpenClaw starts successfully:

> OpenClaw@1.0.0 start
> node server.js

Server running on http://localhost:3000
OpenClaw is ready! 🚀

❌ Still Not Working?

If the port is immediately taken again after killing the process:

  • You may have OpenClaw set to auto-start (check your OS startup programs)
  • Another service is configured to use port 3000 (Docker, NGINX, etc.)

Solution: Use Option B and run on a different port permanently.


🔗 Related: Common Errors Summary | Error Dictionary

Internal Ref: ERROR_RUNTIME_001
ErrorRuntimePortEADDRINUSE3000