Guía de Solución de Problemas Comunes en N8N

Aitor Roma
Por Aitor Roma
23 January 2025

Esta guía recopila los problemas más frecuentes reportados por la comunidad de N8N y sus soluciones verificadas. Cada problema incluye una descripción detallada, su impacto, los pasos específicos para resolverlo y ejemplos prácticos de configuración.

Índice

  1. Problemas con Parámetros y Peticiones HTTP
  2. Webhooks de Telegram
  3. Problemas con Variables
  4. Errores de Base de Datos
  5. Problemas de Rendimiento
  6. Configuración de Dominio
  7. Manejo de Archivos y Multimedia
  8. Gestión de Credenciales

1. Problemas con Parámetros y Peticiones HTTP

Síntomas

  • Error "Bad request - please check your parameters"
  • Respuestas 400 o 500 en nodos HTTP Request
  • Fallos en la autenticación de APIs

Causas Comunes

  1. Formato incorrecto de parámetros
  2. Headers mal configurados
  3. Problemas de autenticación
  4. Rate limiting

Solución ✅

  1. Validación de Parámetros:
// Ejemplo de formato correcto
{
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{$node.HTTP_Auth.data.access_token}}"
  },
  "body": {
    "key": "value"
  }
}
  1. Manejo de Rate Limiting:
    • Usar el nodo "Split In Batches"
    • Configurar delays entre peticiones
// En Function node
await new Promise(resolve => setTimeout(resolve, 1000)); // 1 segundo de delay
  1. Debugging:
    • Activar "Debug" en el nodo
    • Usar console.log() en Function nodes
    • Revisar Network en el panel de desarrollo

2. Webhooks de Telegram

Síntomas

  • Error "Bad Request: bad webhook"
  • No se reciben actualizaciones
  • Problemas con SSL

Solución Detallada ✅

  1. Configuración de SSL:
# Verificar certificado SSL
openssl x509 -in /path/to/cert.pem -text -noout
  1. Configuración del Webhook:
// Ejemplo de setup
{
  "url": "https://tudominio.com/webhook/telegram",
  "allowed_updates": ["message", "callback_query"],
  "drop_pending_updates": true
}
  1. Verificación:
# Comprobar estado del webhook
curl "https://api.telegram.org/bot<TU_TOKEN>/getWebhookInfo"

3. Problemas con Variables

Síntomas

  • Variables undefined
  • Errores de referencia
  • Problemas con workflow.data

Solución ✅

  1. Scope de Variables:
// Global
$workflow.data.miVariable = "valor";

// Local al nodo
items[0].json.miVariable = "valor";
  1. Persistencia:
// Guardar en workflow data
const data = $workflow.data;
data.contador = (data.contador || 0) + 1;
$workflow.data = data;

4. Errores de Base de Datos

Síntomas

  • Errores de conexión
  • Problemas de permisos
  • Queries fallidas

Solución ✅

  1. Verificación de Conexión:
-- Test de conexión
SELECT 1;
  1. Manejo de Errores:
// En Function node
try {
  const result = await $node.DB_Query.sql.execute();
} catch (error) {
  console.log('Error DB:', error.message);
  throw error;
}

5. Problemas de Rendimiento

Síntomas

  • Workflows lentos
  • Consumo alto de memoria
  • Timeouts

Solución ✅

  1. Optimización:
// Procesar en lotes
const BATCH_SIZE = 100;
for (let i = 0; i < items.length; i += BATCH_SIZE) {
  const batch = items.slice(i, i + BATCH_SIZE);
  // Procesar batch
}
  1. Configuración:
# Ajustes de memoria en pm2
pm2 start n8n --max-memory-restart 4G

6. Configuración de Dominio

Solución ✅

  1. Configuración Nginx:
server {
  listen 443 ssl;
  server_name n8n.tudominio.com;

  location / {
    proxy_pass http://localhost:5678;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}
  1. Docker Compose:
version: '3'
services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.tudominio.com
      - N8N_PROTOCOL=https
      - N8N_SSL_CERT=/path/to/cert.pem

7. Manejo de Archivos y Multimedia

Solución ✅

  1. Procesamiento de Imágenes:
// Convertir imagen a Base64
const buffer = await $node.Read_File.binary.data;
const base64 = buffer.toString('base64');
  1. Envío a Telegram:
// Configuración correcta
{
  "message": "Nueva imagen",
  "photo": {
    "value": "{{ $binary.data }}",
    "options": {
      "filename": "imagen.jpg"
    }
  }
}

8. Gestión de Credenciales

Solución ✅

  1. Backup de Credenciales:
# Exportar credenciales
n8n export:credentials --backup --output=credentials.json

# Importar credenciales
n8n import:credentials --input=credentials.json
  1. Encriptación:
# Configurar clave de encriptación
export N8N_ENCRYPTION_KEY=tu-clave-segura

Mejores Prácticas

  1. Monitorización:

    • Implementar healthchecks
    • Configurar alertas
    • Mantener logs estructurados
  2. Backup y Recuperación:

# Backup automático diario
0 0 * * * /usr/local/bin/n8n export:workflow --backup --output=/backups/workflows_$(date +\%Y\%m\%d).json
  1. Desarrollo Seguro:

    • Usar variables de entorno
    • Implementar rate limiting
    • Validar inputs
  2. Testing:

    • Crear workflows de prueba
    • Documentar casos de uso
    • Mantener un entorno de staging

Recursos Adicionales

Esta guía se actualiza regularmente con nuevos problemas y soluciones reportados por la comunidad. Si encuentras un problema no listado aquí, no dudes en compartirlo en nuestro canal de Telegram.

guía soluciones errores troubleshooting n8n