Artigos sobre: Solução de Problemas

Erro EADDRINUSE ("porta já em uso"): como resolver

O que significa o erro EADDRINUSE


O erro EADDRINUSE (do inglês Error: Address already in use) acontece quando sua aplicação tenta "ouvir" (listen) em uma porta que já está sendo usada por outro processo. No Node.js, a mensagem costuma ser parecida com Error: listen EADDRINUSE: address already in use :::3000.


Em resumo: a porta 3000 (ou qualquer outra) já está ocupada, e dois processos não podem usar a mesma porta ao mesmo tempo.


Por que isso acontece


  • Você iniciou a aplicação duas vezes sem encerrar a primeira.
  • Um processo anterior travou e ficou "preso" segurando a porta.
  • Outra aplicação no mesmo servidor já usa essa porta.
  • Você fixou uma porta no código (ex.: app.listen(3000)) em vez de usar a porta fornecida pelo ambiente.


Como resolver no seu computador (local)


1. Identifique o processo que está usando a porta


No Linux ou macOS:

lsof -i :3000


No Windows:

netstat -ano | findstr :3000


2. Encerre o processo (troque PID pelo número que apareceu)


No Linux ou macOS: kill -9 PID


No Windows: taskkill /PID PID /F


A solução definitiva: use a porta do ambiente


Fixar a porta no código é a causa mais comum do problema em produção. Em vez de app.listen(3000), use a variável de ambiente PORT:


const port = process.env.PORT || 3000;
app.listen(port);


Assim, o ambiente de hospedagem define a porta correta automaticamente e o conflito desaparece.


Como a Square Cloud evita esse problema


Na Square Cloud, cada aplicação roda em um ambiente isolado e dedicado — nenhum outro processo "rouba" a sua porta. Basta sua aplicação respeitar a variável PORT e configurar a porta no arquivo squarecloud.app; o deploy cuida do resto.


Ainda com erro?


Se mesmo assim a aplicação não sobe, revise o comando de inicialização no artigo Minha aplicação não inicia: Verificando o script de start.

Atualizado em: 13/06/2026

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!