Hard bounces permanently suppressed
Why it matters
Sending to hard-bounced addresses — permanent delivery failures where the domain does not exist or the mailbox has been closed — is one of the fastest ways to destroy sender reputation. ISPs track hard-bounce rates and use them as a primary signal for spam classification. Continued sends to bounced addresses also place you in violation of CAN-SPAM § 5, which requires honoring suppression, and trigger GDPR Art. 21 concerns when the data subject's address is clearly no longer valid. Deliverability services (Postmark, SendGrid, Mailgun) will automatically suspend accounts that exceed a ~2% hard-bounce threshold — recovery typically requires list remediation and a manual warm-up period.
Severity rationale
Critical because sending to hard-bounced addresses directly raises bounce rates above ESP suppression thresholds, triggering account suspension and CAN-SPAM compliance exposure with every campaign.
Remediation
Handle hard bounces with immediate, atomic suppression in the webhook handler:
// POST /api/webhooks/esp — inside bounce handler:
if (event.event === 'bounce' && event.bounce_type === 'hard') {
const email = event.email.toLowerCase().trim()
await db.$transaction(async (tx) => {
await tx.suppression.upsert({
where: { email },
create: { email, reason: 'hard_bounce', suppressed_at: new Date(), source_event_id: event.id },
update: { reason: 'hard_bounce', suppressed_at: new Date() }
})
await tx.contact.updateMany({
where: { email },
data: { status: 'suppressed', suppressed_at: new Date() }
})
})
}
Under CAN-SPAM § 5, suppression must be permanent by default. Any admin override of a hard-bounce suppression must be logged with admin ID, timestamp, and a stated reason — unsupervised re-activation is not compliant.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Data Quality & List Hygiene Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · CAN-SPAM-Sec5 — CAN-SPAM Act §5 — must honor opt-out requests and not send to suppressed addresses
- gdpr · Art. 21 — GDPR Article 21 — Right to object to processing
- external · CASL-S6 — CASL Section 6 — prohibits sending commercial electronic messages without consent; bounced addresses indicate withdrawn/invalid consent
- iso-25010:2011 · functional-correctness — Functional Correctness (functional suitability)
Taxons
History
- 2026-04-18·v1.0.0·Initial import from data-quality-list-hygiene·automated