n8n-Fehler „Existing execution data is too large“: Die vollständige Lösung für selbst betriebene Instanzen
Self-Hosting mit n8n bietet Ihnen unbegrenzte Workflow-Ausführungen und vollständige Kontrolle, aber komplexe Workflows mit großen Datensätzen können frustrierende Fehler auslösen, die Sie in Ihrer eigenen Serverkonfiguration beheben müssen. Wenn Sie die Meldung „Please execute the whole workflow, rather than just the node. (Existing execution data is too large.)“ beim Testen einzelner Nodes sehen, haben Sie das Größenlimit der Nutzlast erreicht. Wir zeigen Ihnen, wie Sie diese Einschränkung identifizieren, beheben und für n8n-Installationen im Produktivbetrieb optimieren.
Das Problem: Wenn Workflow-Tests fehlschlagen
Sie haben erfolgreich Ihre n8n-Instanz eingerichtet und stabile Webhook-Funktionalität konfiguriert, aber jetzt erstellen Sie anspruchsvollere Workflows, die Dateien, große API-Antworten oder Datensätze verarbeiten. Beim Ausführen des gesamten Workflows funktioniert alles einwandfrei, aber sobald Sie versuchen, einen einzelnen Node zu testen oder Teilausführungen durchzuführen, gibt n8n die gefürchtete Fehlermeldung aus.
Dies geschieht, weil n8n ein Standardlimit von 16 MB für die Daten einer Teilausführung hat, das für einfache Workflows ausreicht, aber zum Engpass wird, sobald Sie Datenvolumen aus der Praxis verarbeiten.
Was Sie mit dieser Anleitung erreichen
Am Ende dieses Leitfadens haben Sie:
- ✅ Das Größenlimit der Nutzlast von 16 MB auf 256 MB oder einen benutzerdefinierten Wert erhöht
- ✅ Funktionierende Teilausführungen für komplexe Workflows mit großen Datensätzen
- ✅ Eine angemessene Ressourcenzuweisung unter Berücksichtigung der RAM-Grenzen Ihres Servers
- ✅ Ein Monitoring zur laufenden Überwachung der Speichernutzung
- ✅ Eine für den Produktivbetrieb geeignete Konfiguration, die Dateiverarbeitungs-Workflows bewältigt
- ✅ Verfahren für Backups und das Rücksetzen von Konfigurationsänderungen
Voraussetzungen
- Funktionierende n8n-Installation (vorzugsweise aus unserem Hetzner-Einrichtungsleitfaden)
- n8n läuft in Docker-Containern
- SSH-Zugang zu Ihrem Server
- Grundlegendes Verständnis von Docker-Compose-Umgebungsvariablen
- Mindestens 3 GB verfügbarer RAM (empfohlen für ein Nutzlastlimit von 256 MB)
Die Ursache verstehen
Warum selbst betriebenes n8n Nutzlastlimits hat
Wenn Sie Teilausführungen durchführen (einzelne Nodes testen), muss n8n den Workflow-Status und die Daten serialisieren und an das Backend übertragen. Dies umfasst:
- Alle Eingabedaten von vorherigen Nodes
- Workflow-Logik und Node-Konfigurationen
- Ausführungskontext und Variablen
- Binärdaten und Dateiinhalte
Der Standardwert N8N_PAYLOAD_SIZE_MAX=16 (16 MiB; der Wert wird in MiB angegeben) wurde für typische API-Antworten und einfache Datenverarbeitung konzipiert. Moderne Workflows verarbeiten jedoch häufig:
❌ Häufige Szenarien, die 16 MB überschreiten:
- Hochladen und Verarbeiten von Dateien (PDFs, Bilder, Tabellen)
- Große API-Antworten von Datenquellen
- Umwandlung großer Datenmengen
- Mehrstufige Workflows mit angesammelten Daten
✅ Was nach der Behebung passiert:
- Teilausführungen funktionieren mit großen Datensätzen
- Dateiverarbeitungs-Workflows werden testbar
- Komplexe Datentransformationen können Node für Node auf Fehler untersucht werden
Die fehlende Konfiguration
Die Lösung ist die Umgebungsvariable N8N_PAYLOAD_SIZE_MAX, die die maximale Größe der Anfrage-Nutzlast in MiB festlegt, einschließlich der Daten, die der Editor für Teilausführungen sendet. Überschreitet eine Anfrage das Limit, antwortet n8n mit HTTP 413 und der Editor zeigt diesen Fehler an. Bei n8n Cloud verwaltet n8n diese Einstellung für Sie; selbst betriebene Instanzen verwenden den vorsichtigen Standardwert von 16 MiB.
Schritt 1: Ihre aktuelle Konfiguration prüfen
Serverressourcen prüfen
Bevor Sie Nutzlastlimits erhöhen, überprüfen Sie, ob Ihr Server größere Speicherzuweisungen bewältigen kann:
# Check available memory
free -h
# Check current Docker container memory usage
docker stats --no-stream | grep n8n
# Check total system resources
htop
Speicheranforderungen:
- Nutzlastlimit von 64 MB: mindestens 1 GB verfügbarer RAM
- Nutzlastlimit von 128 MB: mindestens 2 GB verfügbarer RAM
- Nutzlastlimit von 256 MB: mindestens 3 GB verfügbarer RAM
Aktuelles Limit ermitteln
Prüfen Sie, ob N8N_PAYLOAD_SIZE_MAX konfiguriert ist:
# 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"
Den Fehler reproduzieren
Erstellen Sie einen Test-Workflow, um das Problem zu reproduzieren:
- Öffnen Sie Ihre n8n-Oberfläche
- Erstellen Sie einen Workflow mit einem großen Datensatz (z. B. HTTP-Anfrage an eine API, die mehr als 16 MB zurückgibt)
- Versuchen Sie, nur einen nachgelagerten Node auszuführen
- Überprüfen Sie, ob der Fehler „Existing execution data is too large“ erscheint
Schritt 2: Das Hauptproblem beheben – Nutzlastgröße erhöhen
Für eine einzelne n8n-Instanz
Wenn Sie eine einzelne n8n-Installation haben:
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
Fügen Sie die Umgebungsvariable N8N_PAYLOAD_SIZE_MAX Ihrer bestehenden Konfiguration hinzu:
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
# ADD THIS LINE - Increases payload limit to 256MB (value in 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
Für mehrere n8n-Instanzen
Wenn Sie mehrere n8n-Instanzen betreiben, aktualisieren Sie jede einzelne:
# 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
Container neu starten
Änderungen anwenden:
# 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
Schritt 3: Die Korrektur überprüfen
Container-Protokolle prüfen
Überprüfen Sie, ob die Container erfolgreich gestartet wurden:
# 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"
Das erhöhte Nutzlastlimit testen
Gehen Sie zurück zu Ihrem Test-Workflow, der fehlgeschlagen ist:
- Öffnen Sie den Workflow mit dem großen Datensatz
- Versuchen Sie, einen einzelnen nachgelagerten Node auszuführen
- Überprüfen Sie, dass der Fehler „Existing execution data is too large“ verschwunden ist
- Bestätigen Sie, dass Teilausführungen jetzt korrekt funktionieren
Speichernutzung überwachen
Behalten Sie die Systemressourcen nach der Änderung im Auge:
# Monitor memory usage over time
watch -n 5 'free -h && echo "--- Docker Stats ---" && docker stats --no-stream | grep n8n'
Schritt 4: Für Ihren Server optimieren
Empfohlene Nutzlastgrößen nach Server-RAM
Wählen Sie die richtige Nutzlastgröße für Ihre 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
Berechnung der Speichernutzung
Schätzen Sie Ihre Speicheranforderungen:
# 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"
Häufige Probleme beheben
Problem: Container startet nach Konfigurationsänderung nicht
Symptome:
- Container beendet sich sofort nach dem Start
- Status „OOMKilled“ in Docker
- Server reagiert nicht mehr
Lösung:
# 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
Problem: Fehler wegen der Nutzlastgröße bleiben bestehen
Symptome:
- Fehler bleibt nach Konfigurationsänderung bestehen
- Umgebungsvariable scheint nicht zu wirken
Lösung:
# 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
Problem: Leistungsverschlechterung des Servers
Symptome:
- Langsamere Antwortzeiten
- Hohe Speichernutzung
- Zunehmende Nutzung der Auslagerungsdatei
Lösung:
# 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
Erweiterte Konfiguration
Separate Instanzen für unterschiedliche Nutzlastgrößen
Das Limit gilt pro n8n-Instanz, nicht pro Workflow. Fortgeschrittene Nutzer können separate Instanzen mit unterschiedlichen Limits erwägen:
# 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
Ressourcenlimits für Container
Setzen Sie explizite Speicherlimits, um eine Systemüberlastung zu verhindern:
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
Nutzlastnutzung überwachen
n8n meldet die Nutzlastgröße nicht direkt. Richten Sie daher stattdessen Warnungen zur Speichernutzung des Containers ein. Dieses Skript setzt voraus, dass docker stats den Speicher in MiB angibt:
#!/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
Sicherheitsüberlegungen
Ressourcenbasierter DoS-Schutz
Hohe Nutzlastlimits können ausgenutzt werden. Begrenzen Sie die Anfragegröße am Reverse Proxy, halten Sie dieses Limit (in Bytes) aber mindestens so hoch wie den von N8N_PAYLOAD_SIZE_MAX festgelegten Wert, sonst lehnt der Proxy große Anfragen mit HTTP 413 ab:
# 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"
Workflow-spezifische Limits
Erwägen Sie workflowbasierte Einschränkungen:
# 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 -
Leistungsoptimierung
Binärdatenverarbeitung
Optimieren Sie bei Workflows zur Dateiverarbeitung die Speicherung von Binärdaten. Beachten Sie, dass N8N_BINARY_DATA_TTL seit n8n 1.9.0 keine Wirkung mehr hat; n8n löscht Binärdaten beim Bereinigen alter Ausführungen:
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
Datenbankoptimierung
Große Nutzlasten können die Datenbankleistung beeinträchtigen:
# 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 und Wiederherstellung
Strategie für Konfigurationsbackups
Erstellen Sie immer ein Backup vor Änderungen:
#!/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
Änderungen schnell zurücksetzen
Wenn Sie Änderungen rückgängig machen müssen:
# 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
Auswirkungen auf Kosten und Leistung
Analyse der Speicherkosten
Höhere Nutzlastlimits wirken sich auf die Serverkosten aus:
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 EUR/month
- CX21 (4GB RAM): 8,46 EUR/month
- CX31 (8GB RAM): 16,07 EUR/month
Leistungsvorteile
Höhere Nutzlastlimits ermöglichen:
- Dateiverarbeitung: Dokumente, Bilder, Videos verarbeiten
- Datenintegration: Große API-Antworten verarbeiten
- Verarbeitung großer Datenmengen: Datensätze effizient transformieren
- Debugging: Komplexe Workflows Node für Node testen
Fazit
Die Erhöhung von N8N_PAYLOAD_SIZE_MAX vom Standardwert 16 MB auf einen für Ihren Server geeigneten Wert ermöglicht leistungsstarke Workflow-Funktionen, die zuvor mit Teilausführungen nicht möglich waren. Das von uns konfigurierte Limit von 256 MB deckt die meisten realen Anwendungsfälle sehr gut ab und erhält zugleich die Stabilität des Servers.
Hauptvorteile dieser Konfiguration
- Produktivität: Komplexe Workflows Node für Node mit deutlich weniger Größenbeschränkungen auf Fehler untersuchen
- Leistungsfähigkeit: Dateien und große Datensätze effizient verarbeiten
- Kosteneffizient: Ein Limit von 128 MB auf einem Server mit 4 GB RAM für unter 10 EUR/Monat nutzen (oben genannter Preis des früheren Hetzner-Tarifs CX21)
- Zuverlässig: Im Produktivbetrieb erprobte Konfiguration mit angemessenem Ressourcenmanagement
- Skalierbar: Limits einfach anpassen, wenn Ihre Workflows komplexer werden
Diese Konfiguration baut auf unserem ursprünglichen n8n-Einrichtungsleitfaden und unserem Leitfaden zur Webhook-Fehlerbehebung auf, um eine vollständige, für den Produktivbetrieb geeignete Automatisierungsplattform zu schaffen, die Datenverarbeitungs-Workflows auf Unternehmensniveau bewältigen kann.
Bei hohen Datenvolumen oder besonderen Anforderungen an Nutzlasten empfiehlt es sich, Automatisierungsexperten hinzuzuziehen, um Ihren konkreten Anwendungsfall zu optimieren und die Serverressourcen bestmöglich zuzuteilen.
Über tva
tva gewährleistet umfassendes Infrastrukturmanagement von Datenbanksystemen, Cloud-Umgebungen und globalen Lieferketten. Unser methodischer Ansatz verbindet strenge Sicherheitsprotokolle mit Leistungsoptimierung, während strategische Beratung eine präzise Koordination digitaler Kompetenzen und physischer Ressourcen ermöglicht – unter Einhaltung höchster Standards für Betriebsführung und Compliance in jeder Zusammenarbeit.
Besuchen Sie tva.sg für weitere Informationen über unsere Leistungen sowie weitere Anleitungen zur Automatisierung.
Weiterführende Beiträge
Fehlerbehebung für selbst betriebenes n8n 2025: Zu große Ausführungsdaten und Webhook-Probleme mit Traefik lösen
Selbst betriebenes n8n 2.x: Payload-Limits für Ausführungsdaten diagnostizieren und sicher erhöhen
n8n-Webhook-Probleme beheben: Der vollständige Leitfaden für selbst betriebene Instanzen