localhost en lugar de 0.0.0.0.
Errores de la plataforma
Los errores de esta sección proceden de la plataforma, no de tu código: memoria, ciclo de vida del contenedor, subida de archivos y límites del plan.La aplicación no arranca / se cae
OOMKilled — Aplicación terminada por falta de memoria
OOMKilled — Aplicación terminada por falta de memoria
Killed en los logs.Causa: La aplicación usa más RAM de la que tiene asignada.Solución:- Aumenta la memoria asignada (prueba con un 50 % más)
- Java/JVM necesita 512 MB o más, y las aplicaciones con Puppeteer también necesitan 512 MB o más
- Optimiza el código para reducir el uso de memoria
Crash loop — reinicio automático desactivado
Crash loop — reinicio automático desactivado
- Revisa los logs para identificar el error de origen
- Corrige el problema y vuelve a desplegar
- Los errores de sintaxis y las salidas con código 0 NO activan el reinicio automático: la aplicación simplemente se detiene
La aplicación se detiene de inmediato (código de salida 0)
La aplicación se detiene de inmediato (código de salida 0)
- En bots: asegúrate de que el cliente inicie sesión (
client.login(token)) - En servidores: asegúrate de que se llame a
app.listen() - Comprueba que
process.exit()no se esté llamando por error
Errores de despliegue
ZIP demasiado grande (máximo 100 MB)
ZIP demasiado grande (máximo 100 MB)
node_modules, venv, .git, etc).Solución: Excluye estos elementos antes de comprimir:- JS/TS:
node_modules,.npm,.next,dist - Python:
venv,.venv,__pycache__,.cache - Go:
vendor| Rust:target| .NET:bin,obj| Elixir:_build,deps| Java:target,.gradle,build
La instalación de dependencias supera el límite de tiempo (15 minutos)
La instalación de dependencias supera el límite de tiempo (15 minutos)
INSTALL_TIMEOUT.Solución:- Elimina las dependencias innecesarias
- En aplicaciones Node.js grandes, considera ejecutar
npm installen local e incluir solo lo necesario
El comando de build falla o supera el límite de tiempo (10 minutos)
El comando de build falla o supera el límite de tiempo (10 minutos)
build_command (el campo BUILD de vertracloud.config) terminó con un error
(BUILD_FAILED) o no acabó a tiempo (BUILD_TIMEOUT). Se ejecuta después de instalar las dependencias
y antes de que la aplicación arranque, en un entorno con 2× la RAM de la aplicación. Una aplicación nueva
se sigue creando, detenida, con la salida del build en sus logs.Solución:- Ejecuta el comando en local para ver el error real
- Simplifica el build o aumenta la memoria de la aplicación (el entorno de build escala con ella)
Límite de despliegues por hora alcanzado
Límite de despliegues por hora alcanzado
DEPLOY_RATE_LIMITED.Solución:- Espera el tiempo indicado en
details.retry_after - Reiniciar y detener la aplicación no cuentan para este límite
Estructura de ZIP no válida
Estructura de ZIP no válida
my-project/src/index.js en lugar de src/index.js).Solución: Los archivos deben estar en la raíz del ZIP, no dentro de una subcarpeta extra.Errores de red
El sitio devuelve timeout / Connection refused
El sitio devuelve timeout / Connection refused
localhost o 127.0.0.1 en lugar de 0.0.0.0.Solución:0.0.0.0 como host y el puerto configurado en PORT.El dominio personalizado no funciona
El dominio personalizado no funciona
- Confirma que tu plan es Intermediary o superior (dominios personalizados)
- Comprueba que el registro CNAME apunta a la dirección que aparece en Registros DNS del dominio
- En un dominio raíz (
example.com), tu proveedor de DNS debe admitir CNAME flattening - Un dominio que permanezca sin DNS durante 14 días se elimina automáticamente; después, borra sus registros
CNAMEyTXTen tu proveedor de DNS - La propagación del DNS puede tardar hasta 48 horas
- El SSL se provisiona automáticamente después de la validación
Errores de base de datos
Connection refused / SSL required
Connection refused / SSL required
- Descarga los tres archivos de certificado en la pestaña Certificados de la base de datos
- Pasa el certificado de cliente (
.crt+.key) y usa el.pemcomo CA: todos los motores lo exigen - Usa el puerto propio de la base de datos que aparece en su página; no es 5432, 27017, 6379 ni 3306
- En MongoDB, añade
authSource=admina la URI - Consulta ¿Cómo me conecto a cada motor?
Demasiadas conexiones abiertas
Demasiadas conexiones abiertas
- Usa connection pooling en tu cliente de base de datos
- Reduce el número de conexiones simultáneas
- Aumenta la memoria de la base de datos si hace falta
Protecciones de la plataforma
Aplicación pausada por Vertra Shield
Aplicación pausada por Vertra Shield
- Espera el tiempo que muestra el panel antes de iniciar o reiniciar la aplicación.
- Revisa el código: busca bucles infinitos, llamadas recursivas sin límite o peticiones masivas sin control.
- Añade rate limiting: implementa límites de peticiones por IP o por sesión en tu código.
- Corrige la causa antes de que termine la pausa: iniciar, reiniciar, desplegar, cambiar la configuración y eliminar la aplicación siguen bloqueados hasta entonces, y las repeticiones alargan la siguiente pausa.
Node.js / JavaScript
Cannot find module 'xxx' / MODULE_NOT_FOUND
Cannot find module 'xxx' / MODULE_NOT_FOUND
dependencies del package.json, o solo está en devDependencies.Solución: Sin un comando de build, la plataforma solo instala dependencies; con uno, instala también devDependencies. Si el paquete se necesita en tiempo de ejecución, muévelo a dependencies:npm ERR! missing script: start
npm ERR! missing script: start
package.json no tiene definido ningún script start.Solución: Añade al package.json:START en vertracloud.config.SyntaxError: Cannot use import statement outside a module
SyntaxError: Cannot use import statement outside a module
import (ES Module) en un proyecto CommonJS.Solución: Añade al package.json:require().ERR_REQUIRE_ESM — require() of ES Module not supported
ERR_REQUIRE_ESM — require() of ES Module not supported
require() con un paquete que solo admite ESM (por ejemplo, node-fetch v3+, chalk v5+).Solución: Cambia a ESM ("type": "module") o usa una versión anterior del paquete (por ejemplo, node-fetch@2).ERESOLVE — unable to resolve dependency tree
ERESOLVE — unable to resolve dependency tree
.npmrc en la raíz del proyecto con:Error: listen EADDRINUSE
Error: listen EADDRINUSE
app.listen() en el código. Usa la variable PORT del entorno.Could not locate the bindings file (better-sqlite3)
Could not locate the bindings file (better-sqlite3)
node_modules/ en la subida. La plataforma compila automáticamente los módulos nativos para Linux.TypeScript
tsx / ts-node: command not found
tsx / ts-node: command not found
tsx o ts-node a dependencies:TSError: Unable to compile TypeScript
TSError: Unable to compile TypeScript
tsconfig.json ausente.Solución: Incluye tsconfig.json en la subida. Corrige todos los errores de TS en local antes de desplegar. Considera precompilar y subir dist/.Python
ModuleNotFoundError: No module named 'xxx'
ModuleNotFoundError: No module named 'xxx'
requirements.txt.Solución: Genera el archivo con:requirements.txt no encontrado
requirements.txt no encontrado
.txt.txt, habitual en Windows).Solución: Revisa el nombre exacto del archivo. En Windows, activa “mostrar extensiones de archivo” para comprobarlo.SyntaxError: invalid syntax
SyntaxError: invalid syntax
match/case de 3.10 en el runtime 3.9).Solución: Selecciona la versión correcta de Python en la configuración. Usa VERSION=recommended para la última versión estable.UnicodeDecodeError / Errores de codificación
UnicodeDecodeError / Errores de codificación
encoding='utf-8' al abrir archivos:Flask/Django no accesible desde el exterior
Flask/Django no accesible desde el exterior
127.0.0.1.Solución: Usa Gunicorn en producción:Go
go.mod not found / cannot find main module
go.mod not found / cannot find main module
go.mod no está en la raíz del proyecto.Solución:go.mod y go.sum en la subida.El build falla / Binario incompatible
El build falla / Binario incompatible
go.mod y go.sum. Si subes un binario, compílalo para Linux:Java
no main manifest attribute, in app.jar
no main manifest attribute, in app.jar
Main-Class en MANIFEST.MF.Solución: Configura la herramienta de build para generar un fat JAR. En Maven, usa maven-shade-plugin o spring-boot-maven-plugin.OutOfMemoryError: Java heap space
OutOfMemoryError: Java heap space
PHP
Dependencias no instaladas / composer.json no encontrado
Dependencias no instaladas / composer.json no encontrado
composer.json falta en la raíz, o se subió vendor/ (que puede ser incompatible).Solución: Incluye composer.json y composer.lock en la raíz. No subas el directorio vendor/.Bots de Discord
An invalid token was provided / Improper token
An invalid token was provided / Improper token
- Genera un token nuevo en el Discord Developer Portal
- Guárdalo como variable de entorno (no lo escribas fijo en el código)
- Reinicia la aplicación después de actualizarlo
Used disallowed intents / DisallowedIntents
Used disallowed intents / DisallowedIntents
- Message Content Intent (para leer el contenido de los mensajes)
- Server Members Intent (para eventos de miembros)
- Presence Intent (para el estado de presencia)
Valid intents must be provided / ClientMissingIntents
Valid intents must be provided / ClientMissingIntents
El bot se desconecta de forma aleatoria
El bot se desconecta de forma aleatoria
- Aumenta la memoria asignada
- Actualiza discord.js/discord.py a la última versión
- Busca fugas de memoria
on_message no funciona (discord.py)
on_message no funciona (discord.py)
message_content (obligatorio desde discord.py 2.0+).Solución:Variables de entorno
Valores undefined / null en la configuración
Valores undefined / null en la configuración
.env.example para documentar qué variables son obligatorias.El archivo .env no funciona en la plataforma
El archivo .env no funciona en la plataforma
.env automáticamente.Solución: Configura las variables desde el panel de Vertra Cloud (pestaña Variables de Entorno) o mediante la API. No dependas de que dotenv cargue un archivo .env en producción.