Resumen
Estoy experimentando fallos por falta de memoria (OOM) reproducibles en n8n Cloud Starter con cargas muy pequeñas (~1-2 MB binarios). El punto de fallo fluctúa entre el nodo Code y el AI Agent entre ejecuciones con la misma entrada, lo que sugiere fuertemente una fluctuación de recursos de trabajador compartido en lugar de un error en el código del usuario.
El mismo workflow JSON funciona perfectamente en self-hosted (Docker, 8 GB en el host) — 30+ ejecuciones sin ningún fallo.
Entorno
- Plan: Cloud Starter
- Instancia:
verma-digital.app.n8n.cloud - Versión de n8n: 2.20.7 (Cloud)
- Nodo:
@n8n/n8n-nodes-langchain.agentv1.8 - Modelo:
gpt-4.1-mini
Prueba reproducible — workflow minimal de 8 nodos
Manual Trigger
→ Code "Prepare Test Data"
(obtener cada URL vía helpers.httpRequest({encoding:'arraybuffer'})
+ helpers.prepareBinaryData, emite 1 elemento por archivo con binarios)
→ Switch by MIME (PDF / Imagen / Fallback)
→ Extract from PDF (solo rama PDF) → Merge (agregar, 3 entradas)
→ Code "Aggregate"
(recopilar elementos en una sola salida: json.text + binary.data_0,
data_1, ... para AI Agent)
→ AI Agent (passthroughBinaryImages: true)
→ OpenAI Chat Model
Sin memoria Postgres, sin herramientas, sin subworkflows guardados. Tan minimal como es posible mientras se reproduce el problema.
Estoy feliz de compartir el workflow JSON completo.
Resultados de pruebas
| Entrada | Total binario | Resultado |
|---|---|---|
| 2 iconos pequeños (webp) | ~40 KB | |
| 2 PDF pequeños (176 + 63 KB) | ~240 KB | |
| 1 PDF (2.6 MB, 5 páginas) | ~2.6 MB | |
| 2 imágenes (1.56 MB + 810 KB webp) | ~2.4 MB |
El umbral está en algún lugar entre ~240 KB y ~2.4 MB de binarios totales en una sola ejecución. El fallo ocurre incluso con un único binario de 2.6 MB (solo una llamada helpers.httpRequest), por lo que esto no es una fuga de acumulación multi-fetch.
La parte interesante — punto de fallo no determinista
Exacta misma entrada, mismo workflow, mismo camino de ejecución:
- Ejecución 1: falla en el nodo Code
Prepare Test Data(durantehelpers.httpRequest/prepareBinaryData) - Ejecución 2: falla en el nodo AI Agent (durante procesamiento base64
passthroughBinaryImages) - Ejecución 3: falla en el nodo Code de nuevo
- (etc.)
Ambos modos de fallo producen el mismo error en la UI:
Execution stopped at this node
n8n may have run out of memory while running this execution.
“Other info” expandido solo muestra la versión de n8n + marca de tiempo. Sin stack trace visible.
Si esto fuera un error en el código del usuario, el fallo sería determinista en el mismo nodo cada ejecución. El hecho de que el punto de fallo fluctúe con la misma entrada sugiere fuertemente presión de recursos de trabajador compartido.
Prueba de control — self-hosted funciona bien
Importé el mismo workflow JSON en n8n self-hosted (Docker, n8n 2.20.7, 8 GB en el host), con los mismos servicios externos (Supabase, OpenAI).
Resultado: 30+ ejecuciones en todos los escenarios de fallo anteriores — sin ningún fallo. Incluyendo un PDF de 4.7 MB + 2 imágenes grandes simultáneamente.
Esto aísla la causa a la infraestructura de Cloud, no al workflow o mi código.
Preguntas
-
¿Alguien más ha experimentado esto en Cloud Starter? Específicamente OOM intermitente con cargas de sub-MB a bajo-MB en workflows que usan binary fetch + AI Agent passthroughBinaryImages?
-
¿Hay un presupuesto de memoria por ejecución no documentado en Starter que sea más bajo que los 1 GB de memoria de trabajador anunciados? El fallo observado a ~2 MB binarios es tres órdenes de magnitud por debajo.
-
¿
helpers.httpRequest({encoding:'arraybuffer'})oprepareBinaryDatatienen sobrecarga de memoria conocida más allá del tamaño del búfer? -
¿Hay un problema conocido con LangChain Agent v1.8
passthroughBinaryImagesprovocando picos de memoria para entradas > 1 MB? -
¿Actualizar a Pro cambiaría significativamente la situación, o la misma infraestructura compartida afectará también a Pro?
Realmente prefiero quedarme en Cloud (queremos evitar la sobrecarga de mantenimiento del self-hosting), pero ahora mismo Starter no es estable para nuestro caso de uso.
Feliz de proporcionar:
- Workflow JSON completo
- IDs de ejecución fallida (para que el equipo de n8n extraiga logs del lado del servidor)
- Puntos de datos de prueba adicionales (cargas más pequeñas, bisección, etc.)
¡Gracias por cualquier información!