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:
- Enlaza un servidor web, una sola vez, escuchando en el puerto
80. - Busca en tu código más de una llamada a
.listen()(Node) orun()(Python/Flask/Django) y elimina la duplicada. - 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.
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.”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 endependencies 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:
- Agrega el paquete faltante al archivo de dependencias con una versión válida.
- Confirma que el propio archivo de dependencias esté incluido en el
.zipque subiste. - Reinicia la aplicación. Para Node.js, una reinstalación limpia requiere borrar primero
node_modules(elimínalo junto conpackage-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: abrepackage.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
MEMORYconfigurada 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.appo APIs de mensajería (Discord, Telegram, WhatsApp), casi siempre por un bucle infinito o una caché faltante en lugar de popularidad real.
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 deDAILY_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 comoCould 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:
- Actualiza
better-sqlite3a12.5.0o posterior (si usasquick.db, actualízalo a9.1.7o posterior). - Elimina
node_modulesypackage-lock.json. - 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:- Perfila la aplicación en busca de fugas de memoria (Node.js:
--inspect, Python:memory_profiler). - 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.
- Aumenta el valor de
MEMORYasignado a tu aplicación en el panel de control.

