EADDRINUSE: address already in use 127.0.0.1:3080
Fix EADDRINUSE on 127.0.0.1:3080 by identifying the listening process, checking Windows excluded ports, or starting DSH on a free port.
On this page
First, match EADDRINUSE: address already in use 127.0.0.1:3080
This page targets EADDRINUSE: address already in use 127.0.0.1:3080. The full message can contain a few extra words on different operating systems or Node.js versions, but the core error code or phrase should match.
EADDRINUSE: address already in use 127.0.0.1:3080EADDRINUSEaddress already in useport 3080 is already in useEACCES :3080When searching or asking for help, copy the full error and remove API keys, private repository names, usernames and sensitive paths.
EADDRINUSE usually means a process is listening on 3080. EACCES on Windows can mean the port is reserved by Hyper-V, WSL2 or Docker. Identify the cause first; only stop a process after confirming what it is, or start DSH on a free port such as 13080.
What EADDRINUSE: address already in use 127.0.0.1:3080 means
DSH could not bind its local Web server to the requested port. A running process and a Windows excluded port require different fixes.
Common causes of EADDRINUSE: address already in use 127.0.0.1:3080
- An earlier DSH process is still running.
- Another application is already using port 3080.
- Windows has an excluded TCP range that includes 3080.
- DSH was launched several times while the first startup was still in progress.
Source trace for EADDRINUSE: address already in use 127.0.0.1:3080
These links are pinned to the 0.1.2-alpha.5 / 49a606b snapshot used for this page. They help separate EADDRINUSE: address already in use 127.0.0.1:3080 from failures produced by Node.js, PowerShell, the operating-system network stack or filesystem permissions.
Fix EADDRINUSE: address already in use 127.0.0.1:3080
- 01
Find the Windows listener and PID
Run this in PowerShell. The OwningProcess value is the PID.
Get-NetTCPConnection -LocalPort 3080 -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess - 02
Identify the Windows process
Replace <PID> with the OwningProcess value. Do not stop it until the process name is known.
Get-Process -Id <PID> - 03
Stop only a confirmed stale DSH process
Use this only after you have confirmed that the PID belongs to an old DSH or Node process you intended to close.
Stop-Process -Id <PID> - 04
Check Windows reserved ports
If the error is EACCES and no process is listening, check whether 3080 falls inside an excluded range.
netsh interface ipv4 show excludedportrange protocol=tcp - 05
Check the listener on macOS or Linux
The command shows the process name and PID using the port. Confirm the process before stopping it.
lsof -nP -iTCP:3080 -sTCP:LISTEN - 06
Start DSH on another port
When 3080 is unavailable, use a free local port and open the exact URL printed by DSH.
npx @deepseek-ai/dsh web --port 13080
Verify EADDRINUSE: address already in use 127.0.0.1:3080 is fixed
- The terminal prints a Web UI address without EADDRINUSE or EACCES.
- The printed URL opens in the browser.
- Do not kill an unknown PID before checking its process name.
- Do not repeatedly start more DSH processes while the first one is still downloading or launching.
- Do not disable Hyper-V, WSL2 or Docker merely to free one port; choosing another port is usually safer.
EADDRINUSE: address already in use 127.0.0.1:3080 FAQ
How do I fix EADDRINUSE: address already in use 127.0.0.1:3080?
EADDRINUSE usually means a process is listening on 3080. EACCES on Windows can mean the port is reserved by Hyper-V, WSL2 or Docker. Identify the cause first; only stop a process after confirming what it is, or start DSH on a free port such as 13080.
What does EADDRINUSE: address already in use 127.0.0.1:3080 mean?
DSH could not bind its local Web server to the requested port. A running process and a Windows excluded port require different fixes.
How do I verify EADDRINUSE: address already in use 127.0.0.1:3080 is fixed?
The terminal prints a Web UI address without EADDRINUSE or EACCES. The printed URL opens in the browser.
Checked against the official repository on 2026-09-03. Published version baseline: 0.1.1-rc.2; source snapshot: 0.1.2-alpha.5 (49a606b).
Official README · Verified source commit · GitHub Discussions