Potencial deadlock de merge en n8n
Por qué los nodos Merge pueden esperar para siempre por datos que nunca llegan
¿Qué es este problema?
Un deadlock de merge ocurre cuando un nodo Merge está configurado para esperar datos de múltiples ramas, pero una o más ramas no se ejecutan debido a lógica condicional (IF, Switch, filtros). El nodo Merge espera indefinidamente por entrada que nunca llegará.
Escenarios de deadlock:
•Nodo IF envía datos a rama A, Merge espera A y B•Switch enruta a 1 de 3 caminos, Merge espera los 3•Filter elimina todos los items, Merge downstream nunca recibe entrada•Rama de error no tomada, pero Merge espera camino de error
¿Por qué es peligroso?
Workflow colgado para siempre
Sin un timeout, el workflow esperará indefinidamente, nunca completando.
Agotamiento de recursos
Workflows atascados consumen slots de workers, potencialmente bloqueando otras ejecuciones.
Problemas de consistencia de datos
Completado parcial significa que algunos datos se procesan mientras otros no.
Difícil de diagnosticar
El workflow aparece 'ejecutándose' sin errores, haciendo el problema difícil de detectar.
Cómo solucionarlo
- 1
Usar modo 'Choose Branch'
Configura Merge para proceder cuando CUALQUIER entrada llegue, no esperar por todas.
- 2
Asegurar que todas las ramas ejecuten
Si usas 'Wait for All', asegúrate de que cada rama de entrada siempre envíe datos (incluso arrays vacíos).
- 3
Agregar nodos No Op
En ramas que podrían no ejecutarse, agrega un nodo No Op o Set que siempre se ejecute para señalar completado.
- 4
Agregar timeout del workflow
Configura un timeout del workflow para prevenir esperas infinitas.
Escanea tu workflow ahora
Sube tu archivo JSON de n8n y detecta nodos Merge con condiciones de potencial deadlock.