Troubleshooting
Mi bot se apaga o se reinicia solo
Cómo leer la consola y resolver errores de memoria, cierres inesperados y reinicios en bucle.
This content is not available in your language yet.
Casi siempre la respuesta está en la Consola del panel de control, justo en las últimas líneas antes de que el bot se detuviera. Busca cuál de estos casos coincide con lo que ves.
Se quedó sin memoria
Sección titulada «Se quedó sin memoria»En la consola aparece un bloque como este, que termina en JavaScript heap out of memory:

Las dos variantes más comunes de la última línea son:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memoryFATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memoryTu bot usó toda la memoria disponible. Nuestro servidor ya ajusta Node.js automáticamente para aprovechar el 83 % de la RAM de tu plan, así que si llegaste a ese límite, algo en tu código está guardando datos sin liberarlos.
Las causas más comunes:
-
Cachés de discord.js sin límite. Por defecto guarda mensajes, miembros y otros datos en memoria. Ponles un límite:
const { Client, GatewayIntentBits, Options } = require('discord.js');const client = new Client({intents: [GatewayIntentBits.Guilds],makeCache: Options.cacheWithLimits({...Options.DefaultMakeCacheSettings,MessageManager: 50, // guarda solo los últimos 50 mensajes por canal}),sweepers: {...Options.DefaultSweeperSettings,messages: { interval: 3600, lifetime: 1800 }, // limpia mensajes de más de 30 min},}); -
Listas o mapas que solo crecen, como un historial o un registro de usuarios en memoria. Guarda esos datos en una base de datos o límpialos cada cierto tiempo.
-
setIntervalque nunca se detienen o listeners que se registran una y otra vez (por ejemplo dentro de un comando).
Si tu bot realmente necesita más memoria, puedes cambiar a un plan mayor desde el portal de facturación.
Un error en el código
Sección titulada «Un error en el código»La consola muestra un error seguido de varias líneas que empiezan con at:
TypeError: Cannot read properties of undefined (reading 'id') at Client.<anonymous> (/home/container/src/events/ready.js:12:31)La primera línea dice qué falló y la siguiente dónde: archivo y número de línea. Corrige ese punto en tu código.
Para que un error en una promesa no apague todo tu bot, registra los errores no controlados:
process.on('unhandledRejection', (err) => console.error('Promesa rechazada:', err));Se apagó sin ningún error
Sección titulada «Se apagó sin ningún error»Si la consola no muestra ningún error y el servidor quedó apagado, tu aplicación terminó por sí misma. El panel de control lo toma como un apagado normal y no lo vuelve a encender.
Revisa si tu código llama a process.exit() o si termina porque no queda nada en ejecución (por ejemplo, el inicio de sesión falló y no hay nada que mantenga vivo el proceso).
Se reinicia una y otra vez
Sección titulada «Se reinicia una y otra vez»Si tu bot se cae, el panel de control lo reinicia automáticamente. Pero si vuelve a caerse en menos de un minuto, deja de reiniciarlo para no quedar en un bucle infinito.
- Revisa la consola: el motivo de la caída suele repetirse en cada intento.
- Corrige la causa (memoria, error en el código, token inválido…).
- Enciende el servidor de nuevo desde el panel de control.
¿Nada de esto coincide?
Sección titulada «¿Nada de esto coincide?»Escríbenos desde el chat con:
- el ID de tu servidor (los 8 caracteres que aparecen en el panel de control),
- las últimas 30–50 líneas de la consola,
- la hora aproximada en que se apagó.