> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 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](https://help.squarecloud.app/pt-br/article/minha-aplicacao-nao-inicia-verificando-o-script-de-start-1ospfjh/).