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
- Problemas con Parámetros y Peticiones HTTP
- Webhooks de Telegram
- Problemas con Variables
- Errores de Base de Datos
- Problemas de Rendimiento
- Configuración de Dominio
- Manejo de Archivos y Multimedia
- 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
- Formato incorrecto de parámetros
- Headers mal configurados
- Problemas de autenticación
- Rate limiting
Solución ✅
- 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"
}
}
- 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
- 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 ✅
- Configuración de SSL:
# Verificar certificado SSL
openssl x509 -in /path/to/cert.pem -text -noout
- Configuración del Webhook:
// Ejemplo de setup
{
"url": "https://tudominio.com/webhook/telegram",
"allowed_updates": ["message", "callback_query"],
"drop_pending_updates": true
}
- 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 ✅
- Scope de Variables:
// Global
$workflow.data.miVariable = "valor";
// Local al nodo
items[0].json.miVariable = "valor";
- 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 ✅
- Verificación de Conexión:
-- Test de conexión
SELECT 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 ✅
- 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
}
- Configuración:
# Ajustes de memoria en pm2
pm2 start n8n --max-memory-restart 4G
6. Configuración de Dominio
Solución ✅
- 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;
}
}
- 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 ✅
- Procesamiento de Imágenes:
// Convertir imagen a Base64
const buffer = await $node.Read_File.binary.data;
const base64 = buffer.toString('base64');
- 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 ✅
- Backup de Credenciales:
# Exportar credenciales
n8n export:credentials --backup --output=credentials.json
# Importar credenciales
n8n import:credentials --input=credentials.json
- Encriptación:
# Configurar clave de encriptación
export N8N_ENCRYPTION_KEY=tu-clave-segura
Mejores Prácticas
Monitorización:
- Implementar healthchecks
- Configurar alertas
- Mantener logs estructurados
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
Desarrollo Seguro:
- Usar variables de entorno
- Implementar rate limiting
- Validar inputs
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.