Skip to main content
Um site na Cube precisa de duas coisas: escutar em 0.0.0.0 e na porta da variável PORT. Quase todo site que não abre falha numa delas. Veja o guia completo em Sites e APIs.

Este site não respondeu

O que significa: o visitante vê a página Erro 503 · Este site não respondeu. O projeto está ligado, mas o app não atendeu. Por que acontece:
  • O app escuta em localhost ou 127.0.0.1. Assim, só o próprio processo alcança o app, e as visitas não chegam. É o padrão do app.run() do Flask e do uvicorn sem --host. (O gunicorn sem -b já escuta certo: ele lê a variável PORT e usa 0.0.0.0.)
  • O app escuta em outra porta. A porta fixa no código (3000, 5000) é diferente da PORT do projeto (a do port do cube.json, padrão 8080).
  • O app ainda está subindo ou caiu. Confira o status e os logs.
Um pedido que passa 100 segundos sem resposta também é encerrado, mas com um erro de tempo esgotado. Nesse caso, responda antes e deixe o trabalho longo em segundo plano. Como corrigir:
  1. Em Logs › Aplicação, veja em que endereço o app diz que está escutando.
  2. Troque para 0.0.0.0 e a porta da variável PORT, como nos exemplos abaixo.
  3. Reinicie o projeto e abra o endereço de novo.
Nos logs, o problema aparece assim, com o app citando só o 127.0.0.1:
Logs › Aplicação
Com host='0.0.0.0', o Flask também lista o 127.0.0.1, mas escreve antes Running on all addresses (0.0.0.0). Aí está certo: o 127.0.0.1 é só um dos endereços em que ele atende.
Logs › Aplicação (certo)

Este site está parado

O que significa: o visitante vê Erro 503 · Este site está parado. O projeto não está no ar. Por que acontece: o projeto foi parado, ainda não foi iniciado, caiu (no Free, ou em loop de erro nos pagos) ou a conta está suspensa por falta de pagamento. Como corrigir: abra o projeto no painel. Se ele caiu, veja o motivo em Logs e em O projeto não inicia; depois, clique em Iniciar.

Este endereço não existe

O que significa: o visitante vê Erro 404 · Este endereço não existe. Nenhum site usa esse subdomínio. Por que acontece: o endereço foi digitado errado, o subdomínio foi trocado ou o projeto foi excluído. Como corrigir: confira o endereço em Configurações › Rede do projeto. Veja Endereço e domínios.

Este site está sobrecarregado

O que significa: o visitante vê Erro 503 · Este site está sobrecarregado. O site recebeu conexões demais ao mesmo tempo, no total ou de um mesmo visitante. Por que acontece: um pico de acessos, um teste de carga ou respostas lentas, que seguram as conexões abertas por mais tempo. Como corrigir: espere alguns segundos. Se acontece sempre, deixe as respostas mais rápidas (cache, menos trabalho por pedido) e fale com a gente no Discord.

Error: listen EADDRINUSE: address already in use

O que significa: o app tentou escutar numa porta que já está em uso dentro do próprio projeto. Por que acontece: o código chama listen duas vezes (dois servidores, ou um listen dentro de um evento que roda mais de uma vez), ou o comando de início liga dois processos que usam a mesma porta. Como corrigir:
  1. Procure no código mais de um .listen() (Node.js) ou run() (Python) e deixe só um, no começo do arquivo principal.
  2. Se o site tem mais de um servidor, só um escuta na PORT.
  3. Envie o código de novo.
Logs › Aplicação

Could not find a production build in the '.next' directory

O que significa: o next start não achou o build do Next.js. Por que acontece: o build não rodou. A Cube roda o build sozinha quando o package.json tem o script build; sem ele, ou com "build": "" no cube.json, nada é compilado. Como corrigir:
  1. Confira se o package.json tem "build": "next build" em scripts.
  2. Confira em Logs › Instalação se o build terminou sem erro.
  3. Envie o código de novo.
Logs › Aplicação

O WebSocket fecha sozinho

O que significa: a conexão WebSocket (ou SSE) cai depois de um tempo parada. Por que acontece: uma conexão que fica 100 segundos sem trocar nenhum byte é encerrada. Como corrigir: mande um ping de tempos em tempos (a cada 30 segundos, por exemplo) e reconecte do lado do navegador quando a conexão cair.