Skip to content

n8n Runbook

Service: n8n (event-driven workflows, webhooks) Trigger: Webhook not firing, workflow error, or n8n container down Severity: P1 high (webhook-driven integrations) / P2 medium (non-critical automations)

Steps

Webhook not firing

  1. Open n8n at http://n8n.localhost (requires Docker stack running)
  2. Find the relevant workflow and confirm it is set to Active (toggle in top-right)
  3. Test the webhook URL manually: curl -X POST http://n8n.localhost/webhook/<path> -H "Content-Type: application/json" -d '{}'
  4. Check the workflow's execution history for any recent failed attempts
  5. If using a Cloudflare-tunnelled webhook URL, verify the tunnel is active: cloudflared tunnel info

Workflow error

  1. In n8n, navigate to Executions for the affected workflow
  2. Open the failed execution and inspect the error at the failing node
  3. Common causes: upstream API credential expired, malformed input data, network timeout
  4. Fix the node configuration and use "Test Step" to verify in isolation
  5. Re-activate the workflow and confirm the next trigger executes successfully

n8n container down

  1. Check container status: docker compose ps n8n
  2. Check logs for crash reason: docker compose logs n8n --tail=50
  3. Restart the container: docker compose restart n8n
  4. If restart fails, check for port conflicts or volume permission issues
  5. Full stack restart if needed: docker compose up -d

Rollback

n8n workflows are stored in the n8n database volume. For accidental workflow deletion, restore from the most recent Docker volume backup (see restic-restore.md). Workflow exports can also be re-imported from JSON backups in Cloudflare R2.

Contacts

  • On-call: hello@liflode.com
  • n8n interface: http://n8n.localhost
  • Docker stack: docker compose up -d (core stack)
  • ADR-044: n8n vs Windmill — event-driven vs scheduled