Port already in use

The backend exits with EADDRINUSE, or the launcher reports a port it could not free.

Symptom

A start fails with an address-in-use error naming the manager port or the proxy port. Or a project refuses to start because one of its eleven ports is held.

Cause

A previous session crashed and left a process listening. The launcher frees PORT and PROXY_PORT automatically, but it does not free the front-door port or the pooler port. A project port can also be held by an unrelated process or by another project's leftover containers.

Fix

  1. Identify the owner

    List the listeners on the known ports with their owning process.

    netstat -ano -p tcp | Select-String ":24084|:9000|:6000|:6432"
  2. Stop the owner

    Stop the process you recognize. Do not kill an unrelated service to free a port.

  3. Restart through the launcher

    The launcher repeats its own orphan cleanup on the manager and proxy ports.

    node scripts/start.mjs
  4. Change the port if the conflict is permanent

    Move the manager, proxy or front-door port in the environment file or Admin Settings, then update clients.

Prevention

Stop the dev stack cleanly. On Windows, the kill-dev helper stops the expected development processes; on Linux and macOS, stop the process group you started.