Field notes

Local HITL sample

Another approval-gated path for calibration.

#approval

What Crash Labs saw

Gate FAIL · risk 100/100 · 2 outbound action(s) · coverage 100%.

"Very simple Human in the loop system email with AI e IMAP" should not go live yet: 3 critical issue(s) (score 100/100). Biggest risk: Nobody gets alerted when this workflow fails.

Why this breaks in production

  • critical

    Retry survival: 2 side effect(s) still fire on delivery #2

    Retry survival: 2 email · 2 side effect(s) survived run 2.

    Fix → Add dedupe keys, idempotency, and rate limiting / a queue before outbound sends and Stripe writes.

  • critical

    Simulation failed: Spam burst (10 triggers)

    10 trigger fires produced 20 external action(s) (2+2+2+2+2+2+2+2+2+2 per run). 18 still fired after delivery #1. Ledger: 10 identical emails to info@n3witalia.com with subject "[Approval Required] Order question".

    Fix → Add dedupe keys, idempotency, and rate limiting / a queue before outbound sends and Stripe writes.

  • critical

    Fake-company ledger: 25× blast radius

    25 identical emails to info@n3witalia.com with subject "[Approval Required] Order question".

    Fix → Treat every outbound node as dangerous under retries. Require an idempotency key (order id / message id) before send/charge/write.

  • high

    Nobody gets alerted when this workflow fails

    You may think an email or invoice finished when it actually stopped halfway - and no one is paged.

    Fix → In n8n Settings, set an Error Workflow (or add an Error Trigger flow) that Slack/emails your team with the failed run link.

Run this pattern on your workflow

Upload your n8n JSON at Crash Labs. Same gate, blast-radius ledger, and shareable report for clients.