> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# La aplicación no inicia en Square Cloud: EADDRINUSE, Cannot Find Module, INVALID_DEPENDENCY

> Soluciona EADDRINUSE (puerto ya en uso), Cannot find module / ModuleNotFoundError, INVALID_DEPENDENCY, CONTAINER_TEMPORARILY_SUSPENDED, KEEP_CALM, errores de bindings de better-sqlite3, y LACK_OF_RAM en Square Cloud.

Si tu aplicación falla al iniciar o nunca queda online, el log de la consola casi siempre nombra el problema exacto. Compara el error de abajo.

## EADDRINUSE (puerto ya en uso)

**Qué significa:** la aplicación intenta enlazar el mismo puerto de red dos veces.

**Por qué ocurre:** se inician dos servidores en el código, o una llamada a un listener/`app.listen(...)` se crea de nuevo dentro de un manejador de eventos (por ejemplo, en cada solicitud o reconexión) en lugar de una sola vez al iniciar.

**Cómo solucionarlo:**

1. Enlaza **un** servidor web, **una sola vez**, escuchando en el puerto `80`.
2. Busca en tu código más de una llamada a `.listen()` (Node) o `run()` (Python/Flask/Django) y elimina la duplicada.
3. Asegúrate de que la llamada al listener esté en el nivel superior de tu archivo de inicio, no dentro de un callback que pueda dispararse más de una vez.

```javascript theme={null}
// Correct: one listener, at the top level
app.listen(80, "0.0.0.0", () => {
  console.log("Server running");
});
```

<Note>Las aplicaciones dinámicas de Square Cloud deben enlazar al host `0.0.0.0` y al puerto `80`. Enlazar a `localhost`/`127.0.0.1` o a cualquier otro puerto provoca un timeout del sitio en su lugar.</Note>

## "Cannot find module" (Node.js) y ModuleNotFoundError (Python)

**Qué significa:** un paquete que tu código importa falta en el archivo de dependencias.

**Por qué ocurre:** la librería no está listada en `dependencies` de `package.json` (Node) o en `requirements.txt`/`pyproject.toml` (Python), por lo que nunca se instala en la plataforma, aunque funcione en tu máquina.

**Cómo solucionarlo:**

1. Agrega el paquete faltante al archivo de dependencias con una versión válida.
2. Confirma que el propio archivo de dependencias esté incluido en el `.zip` que subiste.
3. Reinicia la aplicación. Para Node.js, una reinstalación limpia requiere borrar primero `node_modules` (elimínalo junto con `package-lock.json`, luego reinicia) para que la plataforma reinstale desde un estado limpio.

## INVALID\_DEPENDENCY

**Qué significa:** el despliegue falló porque una entrada en tu archivo de dependencias no existe o apunta a una versión inválida/no disponible.

**Cómo solucionarlo:** abre `package.json` / `requirements.txt` / `pyproject.toml`, corrige el nombre de paquete mal escrito o el rango de versión de la entrada marcada, y vuelve a desplegar.

## CONTAINER\_TEMPORARILY\_SUSPENDED

**Qué significa:** el contenedor fue suspendido por la plataforma.

**Por qué ocurre:** este estado se activa por protecciones automáticas contra abuso de recursos, más comúnmente:

* **OOM (RAM):** la aplicación intentó exceder su `MEMORY` configurada y el proceso fue terminado.
* **Abuso de CPU:** la aplicación excedió continuamente su CPU asignada, por lo que el proceso se suspendió para proteger el nodo.
* **Abuso de solicitudes:** se activó un límite de seguridad de tráfico hacia dominios `.squareweb.app` o APIs de mensajería (Discord, Telegram, WhatsApp), casi siempre por un bucle infinito o una caché faltante en lugar de popularidad real.

**Cómo solucionarlo:** revisa el correo asociado a tu cuenta, ahí se explica qué activó la suspensión. Luego soluciona la causa raíz (fuga de memoria, bucle intensivo, o patrón de solicitudes descontrolado) antes de reiniciar.

## KEEP\_CALM

**Qué significa:** se solicitó una acción relacionada con snapshots demasiado rápido.

**Por qué ocurre:** ya sea que tú (o una automatización) solicitaste otro snapshot antes de que transcurriera el breve tiempo de espera de la plataforma entre solicitudes de snapshot, o se alcanzó el límite diario de snapshots de la cuenta para el plan actual. Ten en cuenta que esto es distinto de `DAILY_SNAPSHOTS_LIMIT_REACHED`, que marca específicamente que la cuota diaria del plan está agotada: `KEEP_CALM` también puede activarse por el tiempo de espera más corto entre solicitudes por aplicación, independiente del conteo diario.

**Cómo solucionarlo:** espera unos minutos e intenta de nuevo. Si se alcanzó el límite diario, espera hasta el día siguiente, o mejora tu plan para obtener un límite mayor de snapshots automáticos.

## Errores de better-sqlite3 / bindings nativos

**Qué significa:** un error como `Could not locate the bindings file` cuando tu aplicación usa `better-sqlite3` (directamente, o a través de `quick.db`).

**Por qué ocurre:** la versión instalada de `better-sqlite3` es anterior al LTS actual de Node.js de la plataforma, por lo que su binding nativo precompilado no coincide con el runtime.

**Cómo solucionarlo:**

1. Actualiza `better-sqlite3` a `12.5.0` o posterior (si usas `quick.db`, actualízalo a `9.1.7` o posterior).
2. Elimina `node_modules` **y** `package-lock.json`.
3. Reinicia la aplicación para una reinstalación limpia que reconstruya los bindings nativos contra el runtime actual.

## LACK\_OF\_RAM

**Qué significa:** la aplicación excedió su RAM asignada, o el kernel señaló una condición de falta de memoria, y el proceso fue terminado para proteger la estabilidad del host.

**Cómo solucionarlo:**

1. Perfila la aplicación en busca de fugas de memoria (Node.js: `--inspect`, Python: `memory_profiler`).
2. Mueve las cachés en memoria a Redis u otro almacén externo en lugar de dejar crecer indefinidamente una caché/Map en el proceso.
3. Aumenta el valor de `MEMORY` asignado a tu aplicación en el panel de control.

Consulta el desglose completo de mínimos de RAM, asignación de CPU, y límites de red/almacenamiento en la [página de Límites y restricciones](/es/platform/limitations-and-restrictions#lack_of_ram).

<Tip>¿Sigues atascado después de comparar los logs con el error de arriba? Nuestro equipo de soporte puede revisar el fallo específico contigo.</Tip>

## Contáctanos

Si continúas enfrentando **dificultades técnicas**, nuestro **equipo de soporte especializado** está disponible para ayudarte. [**Contáctanos**](https://squarecloud.app/es/support) y estaremos encantados de ayudarte a resolver cualquier problema — la calidad del soporte es una gran parte de por qué los desarrolladores califican a Square Cloud con [**4.9/5 en 402 reseñas**](https://www.trustpilot.com/review/squarecloud.app) en Google y Trustpilot.
