Skip to main content

Bounce and Complaint Handling

Relay processes bounces and complaints in real-time via SES webhooks. Understanding how these events work is critical to maintaining a healthy sender reputation and staying within SES compliance thresholds.

How Bounces Work

When an email can't be delivered, the receiving mail server sends a bounce notification back to SES, which forwards it to Relay via SNS webhook.

Bounce Types

TypeSeverityAuto-SuppressExamples
Permanent (Hard)HighYesInvalid address, domain doesn't exist, address rejected
Transient (Soft)LowNoMailbox full, server temporarily unavailable, message too large

Hard bounces immediately suppress the recipient address. Soft bounces are retried by SES automatically (up to 3 attempts over several hours).

Bounce Sub-Types

Hard bounces include a sub-type with more detail:

  • General — Address is invalid
  • NoEmail — Recipient address doesn't accept email
  • Suppressed — SES account-level suppression (address previously bounced across your SES account)
  • OnAccountSuppressionList — Address is on the SES global suppression list

How Complaints Work

A complaint occurs when a recipient marks your email as spam in their email client. The ISP sends a feedback report to SES via feedback loops, which Relay processes.

Complaints are serious. They indicate the recipient didn't want the email. Relay automatically:

  1. Adds the address to your suppression list with reason complaint
  2. Updates the email log status to complained
  3. Emits a relay.email.complained Bus event
⚠️SES complaint rates must stay below 0.1% (1 in 1,000 emails). Exceeding this threshold risks SES account suspension. Monitor your complaint rate in Analytics.

SES Compliance Thresholds

Amazon SES enforces strict sending reputation requirements:

MetricThresholdConsequence
Bounce rateBelow 5%Above 5% triggers a review; above 10% risks suspension
Complaint rateBelow 0.1%Above 0.1% triggers a review; above 0.5% risks suspension

Relay helps you stay within these thresholds through automatic suppression, bounce rate alerts, and analytics monitoring.

Bounce Rate Alerts

Relay checks your bounce rate every hour. If your 24-hour bounce rate exceeds the configured threshold (default: 5%), Relay:

  1. Emits a relay.alert.bounce_rate Bus event
  2. Sends an alert to your configured notification email (if set in Settings)
💡Tenants with fewer than 10 emails in the last 24 hours are skipped for bounce rate checks. A single bounce from 5 total emails would show 20%, which isn't meaningful.

Configuring the Threshold

  1. Go to Settings (gear icon)
  2. Set the Bounce Rate Threshold (default: 5%)
  3. Enter an Alert Email address for notifications
  4. Optionally enable Daily Digest for a summary of all bounces and complaints

What Happens When an Email Bounces

  1. SES sends a bounce notification to the SNS topic
  2. Relay's webhook handler receives the event
  3. The email log is updated: status → bounced, bounce type and sub-type recorded
  4. If it's a hard bounce, the recipient is added to the suppression list
  5. Daily stats are updated (bounce count incremented)
  6. If the 24-hour bounce rate exceeds the threshold, an alert fires

Reducing Bounces

Clean your lists. Remove addresses that haven't engaged in 6+ months. Old addresses frequently become invalid.

Verify addresses before sending. If a client provides a new contact list, send a small test batch first to gauge bounce rates.

Monitor the dashboard. Check the bounce rate trend in Analytics weekly. A rising trend indicates a list quality problem.

Use double opt-in. For any subscription-based emails, require recipients to confirm their address.

Check suppression list exports. Review the reasons column. If you see a pattern (many bounces from one domain), the client's mail server may be blocking you.

Reducing Complaints

Include an unsubscribe link. Even for transactional email, an unsubscribe option reduces complaints.

Set clear expectations. Only send what recipients expect to receive. A ticket update notification is expected; a marketing upsell is not.

Identify your sender clearly. Use a recognizable From name and address so recipients know who the email is from.

Don't send to cold lists. Addresses that haven't received email from you in months are more likely to mark unexpected emails as spam.