Saltar al contenido principal
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.
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 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.
¿Sigues atascado después de comparar los logs con el error de arriba? Nuestro equipo de soporte puede revisar el fallo específico contigo.

Contáctanos

Si continúas enfrentando dificultades técnicas, nuestro equipo de soporte especializado está disponible para ayudarte. Contáctanos 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 en Google y Trustpilot.