Este error fatal bloquea el proceso Node.js cuando el heap de JavaScript V8 se agota. A diferencia de la mayoría de los errores, no puede capturarse con try/catch porque es un abort duro del proceso. El tamaño del heap predeterminado es aproximadamente 1.5 GB en sistemas de 64 bits.
Por qué ocurre
- •Acumular grandes cantidades de datos en memoria en lugar de transmitirlos.
- •Una fuga de memoria de clausuras, escuchadores de eventos o cachés globales que crecen sin límite.
- •Cargar un archivo grande completo o conjunto de resultados de base de datos en memoria a la vez.
- •El tamaño del heap es insuficiente para la carga de trabajo y necesita aumentarse.
Ejemplos
Código que causa el error
const data = [];
while (true) {
data.push(new Array(10000).fill("x"));
}Error en la terminal
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 1: 0xb7c2e0 node::Abort() [node] ... Aborted (core dumped)
Cómo solucionarlo
Usa streams y generadores para procesar datos de forma incremental. Perfila la memoria con --inspect y snapshots del heap de Chrome DevTools para encontrar fugas. Aumenta el tamaño del heap con --max-old-space-size como medida temporal mientras corriges la causa raíz.
Código corregido
// Increase heap size as a short-term fix
// node --max-old-space-size=4096 app.js
// Long-term: process data in streams instead
const { Readable } = require("stream");
const readable = Readable.from(generateData());
readable.on("data", (chunk) => process(chunk));Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis