Skip to content

Instantly share code, notes, and snippets.

@givip
Last active September 22, 2025 15:44
Show Gist options
  • Save givip/c22d6dec48f96dfc4849fcc05f9af1ee to your computer and use it in GitHub Desktop.
Save givip/c22d6dec48f96dfc4849fcc05f9af1ee to your computer and use it in GitHub Desktop.

Here’s the deep root-cause analysis for Aug 1–31, 2025.

Aug 26–29, 2025 — Soft-bounce spike — Internal processing errors at Gmail (Laneful is aware of this issue and our team is already working on it.)

  • Root cause: transient internal processing errors triggered Gmail deferrals.
  • Impact on metrics: soft-bounce rate rose from 2.49% to 4.40% (+1.92 pts), moving from average → bad.
  • Email providers
    • Most affected: Gmail — 83.10% (59)
    • Least affected: Other — 16.90% (12)
  • Tags
    • Most affected: 4-2.1-1 (25%, 2), 1-0.1-3 (25%, 2)
    • Least affected: 5-2.2-5 (25%, 2), 3-2.0-0 (25%, 2)
  • Most affected recipients
  • SMTP errors (grouped)
    • 451 4.3.0 — Local processing error during message render/submit (Gmail)

Solutions

  • No user action required; we’re mitigating internally.

Aug 26–29, 2025 — Soft bounces — Fastmail temporary deferrals (Laneful is aware of this issue and our team is already working on it.)

  • Root cause: Fastmail temporary deferrals (FCrDNS/host identity note in their message).
  • Contribution to spike: ~16.90% of soft-bounce events (12).
  • Most affected recipients
  • SMTP errors (grouped)
    • 451 4.7.1 — Temporary deferral variants from Fastmail
    • 451 4.3.0 — Internal processing error (minor share)

Solutions

  • No user action required; we’re addressing this on our side.

Aug 5–29, 2025 — Hard-bounce spike — Template not found causing queue expiry at Gmail

  • Root cause: messages referenced a missing/unpublished template; queued too long, then rejected.
  • Impact on metrics: hard-bounce rate increased from 0.00% to 0.13% (still very good).
  • Most affected recipients
  • SMTP errors (grouped)
    • 550 5.7.520 — “Message expired… Template not found” (Gmail)

Solutions

  1. Audit all template references in code/campaigns and switch to a valid, published template ID/slug.
  2. Add a pre-send guard that validates template existence; fail fast if missing.
  3. Monitor failed template lookups; alert on non-200s from template service.

Example pre-send guard

// Pseudocode
const tpl = await laneful.templates.getById(TEMPLATE_ID);
if (!tpl || !tpl.published) throw new Error("Template missing/unpublished");
await laneful.send({ templateId: tpl.id, to, data });

Aug 5–29, 2025 — Hard bounces — SMTP protocol error: nested MAIL command (Laneful is aware of this issue and our team is already working on it.)

  • Root cause: protocol error observed by recipient server.
  • Impact: minimal (1 event; 25% of hard-bounce set).
  • Most affected recipients
  • SMTP errors (grouped)
    • 503 5.5.1 — “nested MAIL command”

Solutions

  • No user action required; being handled internally.

Aug 5–29, 2025 — Hard bounces — Recipient policy/ToS block (Proton)

  • Root cause: recipient’s provider policy/ToS rejection.
  • Impact: minimal (1 event; 25% of hard-bounce set).
  • Most affected recipients
  • SMTP errors (grouped)
    • 550 5.6.0 — Provider policy/ToS violation

Solutions

  1. Suppress/remove this address from all lists and automations.
  2. Do not attempt further sends to this recipient.

Aug 6–7, 2025 — Click-rate drop

  • Click rate: 1.35% → 1.13% (–0.22 pts; remained bad).

Solutions

  1. Implement a sunset policy for no-click subscribers at 6–9 months unless they re-opt in.
  2. Reduce send frequency for low-engagement segments to improve intent.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment