Resolvendo o erro “Existing execution data is too large” do n8n: a correção completa para instâncias auto-hospedadas
A auto-hospedagem do n8n oferece execuções ilimitadas de fluxos de trabalho e controle total, mas fluxos de trabalho complexos com grandes conjuntos de dados podem gerar erros frustrantes que você precisa corrigir na configuração do seu próprio servidor. Se você está vendo “Please execute the whole workflow, rather than just the node. (Existing execution data is too large.)” ao tentar testar nós individuais, você atingiu o limite de tamanho do payload. Vamos mostrar como identificar, corrigir e otimizar esta limitação para instalações do n8n prontas para produção.
O problema: quando o teste de fluxo de trabalho falha
Você configurou com sucesso sua instância do n8n e configurou webhooks confiáveis, mas agora está construindo fluxos de trabalho mais sofisticados que processam arquivos, grandes respostas de API ou conjuntos de dados. Tudo funciona bem ao executar o fluxo de trabalho completo, mas no momento em que tenta testar um único nó ou realizar execuções parciais, o n8n exibe a temida mensagem de erro.
Isso acontece porque o n8n tem um limite padrão de 16MB para dados de execução parcial que funciona bem para fluxos de trabalho simples, mas se torna um gargalo assim que você começa a processar volumes reais de dados.
O que você vai corrigir
Ao final deste guia, você terá:
- Limite de tamanho do payload aumentado de 16MB para 256MB ou valor personalizado
- Execuções parciais funcionando para fluxos de trabalho complexos com grandes conjuntos de dados
- Alocação adequada de recursos considerando os limites de RAM do seu servidor
- Configuração de monitoramento para acompanhar o uso de memória ao longo do tempo
- Configuração pronta para produção que lida com fluxos de trabalho de processamento de arquivos
- Procedimentos de backup e reversão para alterações de configuração
Pré-requisitos
- Instalação do n8n funcional (preferencialmente do nosso guia de configuração Hetzner)
- n8n em execução em contêineres Docker
- Acesso SSH ao seu servidor
- Compreensão básica de variáveis de ambiente do Docker Compose
- Pelo menos 3GB de RAM disponível (recomendado para limite de payload de 256MB)
Entendendo a causa raiz
Por que o n8n auto-hospedado tem limites de payload
Quando você realiza execuções parciais (testando nós individuais), o n8n precisa serializar e transmitir o estado do fluxo de trabalho e os dados para o backend. Isso inclui:
- Todos os dados de entrada dos nós anteriores
- Lógica do fluxo de trabalho e configurações dos nós
- Contexto de execução e variáveis
- Dados binários e conteúdo de arquivos
O valor padrão N8N_PAYLOAD_SIZE_MAX=16 (16 MiB; o valor é em MiB) foi projetado para respostas típicas de API e processamento simples de dados. No entanto, fluxos de trabalho modernos frequentemente lidam com:
Cenários comuns que excedem 16MB:
- Envio e processamento de arquivos (PDFs, imagens, planilhas)
- Grandes respostas de API de fontes de dados
- Transformações de dados em massa
- Fluxos de trabalho com múltiplas etapas e dados acumulados
O que acontece após a correção:
- Execuções parciais funcionam com grandes conjuntos de dados
- Fluxos de trabalho de processamento de arquivos se tornam testáveis
- Transformações complexas de dados podem ser depuradas nó por nó
A configuração ausente
A solução é a variável de ambiente N8N_PAYLOAD_SIZE_MAX, que define o tamanho máximo do payload das requisições em MiB, incluindo os dados que o editor envia para execuções parciais. Quando uma requisição excede esse limite, o n8n responde com HTTP 413 e o editor exibe este erro. No n8n Cloud, o n8n gerencia essa configuração para você; instâncias auto-hospedadas usam o padrão conservador de 16 MiB.
Passo 1: diagnosticar sua configuração atual
Verificar recursos do servidor
Antes de aumentar os limites de payload, verifique se seu servidor pode lidar com alocações de memória maiores:
# Check available memory
free -h
# Check current Docker container memory usage
docker stats --no-stream | grep n8n
# Check total system resources
htop
Requisitos de memória:
- Limite de payload de 64MB: mínimo 1GB de RAM disponível
- Limite de payload de 128MB: mínimo 2GB de RAM disponível
- Limite de payload de 256MB: mínimo 3GB de RAM disponível
Identificar o limite atual
Verifique se N8N_PAYLOAD_SIZE_MAX está configurado:
# Navigate to your n8n directory (adjust path as needed)
cd /opt/n8n
# Check current environment variables
cat docker-compose.yml | grep -A 30 "environment:"
# Look for payload size configuration
grep "N8N_PAYLOAD_SIZE_MAX" docker-compose.yml || echo "Not configured - using 16MB default"
Testar a condição de erro
Crie um fluxo de trabalho de teste para reproduzir o problema:
- Abra a interface do n8n
- Crie um fluxo de trabalho com um grande conjunto de dados (ex.: HTTP Request para uma API que retorna >16MB)
- Tente executar apenas um nó posterior no fluxo
- Verifique se você vê o erro “Existing execution data is too large”
Passo 2: corrigir o problema principal — aumentar o tamanho do payload
Para uma única instância do n8n
Se você tem uma única instalação do n8n:
cd /opt/n8n
# Create backup first
cp docker-compose.yml docker-compose.yml.backup_$(date +%Y%m%d_%H%M)
# Edit the configuration
nano docker-compose.yml
Adicione a variável de ambiente N8N_PAYLOAD_SIZE_MAX à sua configuração existente:
version: '3'
services:
n8n:
image: n8nio/n8n:latest
restart: always
environment:
- N8N_HOST=n8n.yourdomain.com
- NODE_ENV=production
- N8N_PROTOCOL=https
- N8N_PORT=5678
- N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com
- N8N_EMAIL_MODE=smtp
- N8N_SMTP_HOST=mailserver
- N8N_SMTP_PORT=25
- N8N_SMTP_SSL=false
- N8N_SMTP_USER=
- N8N_SMTP_PASS=
- [email protected]
- N8N_TRUST_PROXY_HEADER=true
- N8N_RUNNERS_ENABLED=true
- WEBHOOK_URL=https://n8n.yourdomain.com
# ADICIONE ESTA LINHA - Aumenta o limite de payload para 256MB (valor em MiB)
- N8N_PAYLOAD_SIZE_MAX=256
volumes:
- ./data:/home/node/.n8n
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.yourdomain.com`)"
- "traefik.http.routers.n8n.entrypoints=https"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
networks:
proxy:
external: true
Para múltiplas instâncias do n8n
Se você está executando múltiplas instâncias do n8n, atualize cada uma:
# First instance
cd /opt/n8n
cp docker-compose.yml docker-compose.yml.backup_$(date +%Y%m%d_%H%M)
sed -i '/N8N_RUNNERS_ENABLED=true/a\ - N8N_PAYLOAD_SIZE_MAX=256' docker-compose.yml
# Second instance (adjust path as needed)
cd /opt/n8n-team2
cp docker-compose.yml docker-compose.yml.backup_$(date +%Y%m%d_%H%M)
sed -i '/N8N_RUNNERS_ENABLED=true/a\ - N8N_PAYLOAD_SIZE_MAX=256' docker-compose.yml
Reiniciar seus contêineres
Aplique as mudanças:
# For single instance
cd /opt/n8n
docker compose down && docker compose up -d
# For multiple instances
cd /opt/n8n
docker compose down && docker compose up -d
cd /opt/n8n-team2
docker compose down && docker compose up -d
# Verify containers are running
docker ps | grep n8n
Passo 3: verificar a correção
Verificar logs do contêiner
Verifique se os contêineres iniciaram com sucesso:
# Check main instance logs (adjust container name as needed)
docker logs n8n-n8n-1 --tail 20
# Check for any startup errors
docker logs n8n-n8n-1 | grep -i "error\|failed\|warning"
Testar o aumento do tamanho do payload
Volte ao fluxo de trabalho de teste que estava falhando:
- Abra o fluxo de trabalho com grande conjunto de dados
- Tente executar um único nó posterior no fluxo
- Verifique se o erro “Existing execution data is too large” desapareceu
- Confirme que as execuções parciais agora funcionam corretamente
Monitorar uso de memória
Fique atento aos recursos do sistema após a mudança:
# Monitor memory usage over time
watch -n 5 'free -h && echo "--- Docker Stats ---" && docker stats --no-stream | grep n8n'
Passo 4: otimizar para seu servidor
Tamanhos de payload recomendados conforme a RAM do servidor
Escolha o tamanho de payload certo para seu hardware:
# For servers with 2GB RAM or less
- N8N_PAYLOAD_SIZE_MAX=64 # 64 MiB
# For servers with 4GB RAM
- N8N_PAYLOAD_SIZE_MAX=128 # 128 MiB
# For servers with 8GB+ RAM
- N8N_PAYLOAD_SIZE_MAX=256 # 256 MiB
# For high-performance servers with 16GB+ RAM
- N8N_PAYLOAD_SIZE_MAX=512 # 512 MiB
Cálculo de uso de memória
Estime seus requisitos de memória:
# Calculate safe payload size (should be <20% of available RAM)
echo "Available RAM: $(free -h | awk 'NR==2{print $7}')"
echo "Current payload limit: $(docker exec n8n-n8n-1 env | grep N8N_PAYLOAD_SIZE_MAX || echo '16 (default, MiB)')"
# Monitor actual usage during large workflow executions
docker stats n8n-n8n-1 | grep -E "MEM|n8n"
Resolução de problemas comuns
Problema: contêiner não inicia após mudança de configuração
Sintomas:
- Contêiner encerra imediatamente após inicialização
- Status “OOMKilled” no Docker
- Servidor para de responder
Solução:
# Check container exit reason
docker logs n8n-n8n-1
# Reduce payload size if out of memory
cd /opt/n8n
sed -i 's/N8N_PAYLOAD_SIZE_MAX=256/N8N_PAYLOAD_SIZE_MAX=64/' docker-compose.yml
docker compose up -d
Problema: erros de tamanho de payload persistem
Sintomas:
- Erro persiste após mudança de configuração
- Variável de ambiente parece não ter efeito
Solução:
# Verify environment variable is set correctly
docker exec n8n-n8n-1 env | grep N8N_PAYLOAD_SIZE_MAX
# If missing, recreate container with force
docker compose down
docker compose up -d --force-recreate
# Check if the value is being read
docker logs n8n-n8n-1 | grep -i payload
Problema: degradação de desempenho do servidor
Sintomas:
- Tempos de resposta mais lentos
- Alto uso de memória
- Uso do arquivo de swap aumentando
Solução:
# Monitor system performance
vmstat 1 5
iostat -x 1 5
# Check swap usage
swapon --show
# Reduce payload size if needed
# From 256MB to 128MB
sed -i 's/N8N_PAYLOAD_SIZE_MAX=256/N8N_PAYLOAD_SIZE_MAX=128/' docker-compose.yml
docker compose down && docker compose up -d
Configuração avançada
Instâncias separadas para diferentes tamanhos de payload
O limite se aplica por instância do n8n, não por fluxo de trabalho. Para usuários avançados, considere instâncias separadas com limites diferentes:
# High-capacity instance for file processing
n8n-files:
image: n8nio/n8n:latest
environment:
- N8N_PAYLOAD_SIZE_MAX=512 # 512 MiB
- N8N_HOST=files.yourdomain.com
# Standard instance for regular workflows
n8n-standard:
image: n8nio/n8n:latest
environment:
- N8N_PAYLOAD_SIZE_MAX=64 # 64 MiB
- N8N_HOST=workflows.yourdomain.com
Limites de recursos do contêiner
Defina limites explícitos de memória para evitar sobrecarga do sistema:
services:
n8n:
image: n8nio/n8n:latest
environment:
- N8N_PAYLOAD_SIZE_MAX=256
deploy:
resources:
limits:
memory: 2G # Maximum memory usage
reservations:
memory: 1G # Soft reservation, not a hard guarantee
# ... rest of configuration
Monitoramento de uso de payload
O n8n não informa diretamente o tamanho do payload, portanto configure alertas de uso de memória do contêiner. Este script pressupõe que docker stats informe a memória em MiB:
#!/bin/bash
# Create monitoring script: /opt/monitor-payload.sh
CONTAINER_NAME="n8n-n8n-1"
MEMORY_LIMIT_MB=1500 # Alert if memory usage exceeds this
CURRENT_MEMORY=$(docker stats --no-stream --format "{{.MemUsage}}" $CONTAINER_NAME | cut -d'/' -f1 | sed 's/MiB//')
if (( $(echo "$CURRENT_MEMORY > $MEMORY_LIMIT_MB" | bc -l) )); then
echo "WARNING: n8n memory usage high: ${CURRENT_MEMORY}MB" | logger
# Add notification logic (email, Slack, etc.)
fi
Considerações de segurança
Proteção contra DoS por esgotamento de recursos
Limites elevados de payload podem ser explorados. Limite o tamanho das requisições no proxy reverso, mas mantenha esse limite (em bytes) igual ou superior ao tamanho definido por N8N_PAYLOAD_SIZE_MAX; caso contrário, o proxy rejeitará requisições grandes com HTTP 413:
# Add to Traefik labels for request size limiting
labels:
- "traefik.http.middlewares.payload-limit.buffering.maxRequestBodyBytes=268435456" # 256MB max request, matches N8N_PAYLOAD_SIZE_MAX
- "traefik.http.routers.n8n.middlewares=payload-limit"
Limites específicos por fluxo de trabalho
Considere restrições baseadas em fluxos de trabalho:
# Monitor workflows with large payloads
docker exec n8n-n8n-1 n8n execute --help
# Log large executions
(crontab -l 2>/dev/null; echo "*/10 * * * * docker logs n8n-n8n-1 | grep -i 'payload\|memory' >> /var/log/n8n-payload.log") | crontab -
Otimização de desempenho
Manipulação de dados binários
Para fluxos de trabalho de processamento de arquivos, otimize o armazenamento de dados binários. Observe que N8N_BINARY_DATA_TTL não tem efeito desde o n8n 1.9.0; o n8n exclui os dados binários ao remover execuções antigas:
environment:
- N8N_PAYLOAD_SIZE_MAX=256
- N8N_DEFAULT_BINARY_DATA_MODE=filesystem # Store files on disk, not in memory
- N8N_BINARY_DATA_TTL=1440 # Clean up files after 24 hours
Otimização de banco de dados
Payloads grandes podem impactar o desempenho do banco de dados:
# Monitor database size growth
du -sh /opt/n8n/data/
# Clean up old executions more aggressively
# Add to docker-compose.yml environment:
# - EXECUTIONS_DATA_MAX_AGE=168 # 7 days instead of default 14
# - EXECUTIONS_DATA_PRUNE_MAX_COUNT=1000
Backup e recuperação
Estratégia de backup de configuração
Sempre faça backup antes de realizar mudanças:
#!/bin/bash
# Create backup script: /opt/backup-n8n-config.sh
BACKUP_DIR="/opt/backups/n8n-configs"
mkdir -p $BACKUP_DIR
# Backup all n8n docker-compose files
for instance in n8n n8n-team2; do
if [ -d "/opt/$instance" ]; then
cp "/opt/$instance/docker-compose.yml" "$BACKUP_DIR/${instance}-$(date +%Y%m%d_%H%M).yml"
fi
done
# Delete backups older than 10 days
find $BACKUP_DIR -name "*.yml" -mtime +10 -delete
Procedimento rápido de reversão
Se precisar reverter mudanças:
# List available backups
ls -la /opt/n8n/docker-compose.yml.backup_*
# Restore specific backup
cd /opt/n8n
cp docker-compose.yml.backup_20241206_1430 docker-compose.yml
docker compose down && docker compose up -d
Análise de custos e impacto no desempenho
Análise de custos de memória
Limites maiores de payload afetam os custos do servidor:
Server RAM Requirements:
- 16MB limit (default): 1GB RAM sufficient
- 64MB limit: 2GB RAM recommended
- 128MB limit: 4GB RAM recommended
- 256MB limit: 8GB RAM recommended
- 512MB limit: 16GB RAM recommended
Hetzner Cloud Costs (legacy plans, deprecated by Hetzner in June 2024; check current pricing):
- CX11 (2GB RAM): €4.51/month
- CX21 (4GB RAM): €8.46/month
- CX31 (8GB RAM): €16.07/month
Benefícios de desempenho
Limites maiores de payload possibilitam:
- Processamento de arquivos: Lide com documentos, imagens, vídeos
- Integração de dados: Processe grandes respostas de API
- Operações em massa: Transforme conjuntos de dados de forma eficiente
- Depuração: Teste fluxos de trabalho complexos nó por nó
Conclusão
Aumentar o valor de N8N_PAYLOAD_SIZE_MAX do padrão de 16MB para um valor apropriado ao seu servidor permite executar fluxos de trabalho avançados que antes eram impossíveis com execuções parciais. O limite de 256MB que configuramos oferece excelente cobertura para a maioria dos cenários reais, mantendo a estabilidade do servidor.
Principais benefícios desta configuração
- Produtividade: Depure fluxos de trabalho complexos nó por nó com muito menos restrições de tamanho
- Capacidade: Processe arquivos e grandes conjuntos de dados de forma eficiente
- Econômico: Use um limite de 128MB em um servidor com 4GB de RAM por menos de €10/mês (preço do antigo plano Hetzner CX21 indicado acima)
- Confiável: Configuração testada em produção com gestão adequada de recursos
- Escalável: Ajuste facilmente os limites conforme seus fluxos de trabalho crescem em complexidade
Esta configuração se baseia no nosso guia original de configuração do n8n e no guia de resolução de problemas de webhooks para criar uma plataforma de automação completa e pronta para produção, capaz de lidar com fluxos de trabalho de processamento de dados de nível empresarial.
Para requisitos de payload de alto volume ou especializados, considere consultar especialistas em automação para otimizar seu caso de uso específico e garantir alocação otimizada de recursos do servidor.
Sobre a tva
A tva assegura a gestão abrangente de infraestrutura de sistemas de banco de dados, ambientes em nuvem e cadeias de suprimentos globais. Nossa abordagem metódica combina protocolos rigorosos de segurança com otimização de desempenho, enquanto os serviços de consultoria estratégica permitem a coordenação precisa de capacidades digitais e ativos físicos — mantendo os mais altos padrões de excelência operacional e conformidade em todos os projetos.
Visite tva.sg para mais informações sobre nossos serviços e tutoriais adicionais de automação.
Leitura complementar
Guia completo de solução de problemas do n8n auto-hospedado em 2025: tamanho dos dados de execução e webhooks com Traefik
n8n 2.x auto-hospedado: diagnostique os limites dos dados de execução e aumente o payload com segurança
Corrigindo problemas de webhook do n8n: guia completo para instâncias auto-hospedadas