Skip to content

Bounces & Suppression

When an email can't be delivered or a subscriber reports it as spam, MailJawn takes automatic action to protect your sender reputation. This page explains what happens behind the scenes and how to manage it.

Hard Bounces

A hard bounce means the email permanently failed to deliver — the address doesn't exist, the domain is invalid, or the server permanently rejected the message.

When MailJawn receives a hard bounce notification from Amazon SES:

  1. The subscriber is marked as bounced across all projects in your organization
  2. The email address is added to your organization's suppression list
  3. Any pending automation enrollments for that subscriber are cancelled
  4. The bounce is recorded with full diagnostic details

Note

Soft bounces (temporary failures like a full mailbox) are handled automatically by Amazon SES, which retries delivery. MailJawn only acts on permanent (hard) bounces.

Complaints

A complaint means the subscriber clicked "Report Spam" or "Junk" in their email client. This is a serious signal — it tells inbox providers that your email is unwanted.

When MailJawn receives a complaint notification:

  1. The subscriber is marked as complained across all projects in your organization
  2. The email address is added to your organization's suppression list
  3. Any pending automation enrollments are cancelled
  4. The complaint is recorded with the feedback type (abuse, fraud, etc.)

Warning

Complained subscribers cannot be reactivated. This is intentional — re-sending to someone who reported you as spam risks your entire sending reputation. There is no override.

Suppression List

The suppression list is an organization-wide blocklist of email addresses that should never receive email. It's checked before every send — even if a subscriber's status hasn't been updated yet, the suppression list catches it.

Addresses are added to the suppression list for these reasons:

Reason Source Can Be Removed?
Hard bounce Automatic (SES webhook) Yes — via reactivation
Complaint Automatic (SES webhook) No — permanent
Manual Added by you Yes

The suppression list operates at the organization level, not the project level. A suppressed address is blocked across all your projects.

Bounce Event History

Every bounce and complaint is recorded with detailed information from Amazon SES:

Field What It Shows
Event Type Hard bounce, complaint, or reactivation
Bounce Type SES classification: Permanent, Transient, or Undetermined
Bounce Subtype Specific reason: General, NoEmail, Suppressed, etc.
Diagnostic Code The raw SMTP error message from the receiving server
Complaint Type Feedback category: abuse, auth-failure, fraud, not-spam, other, virus
Campaign Which email triggered the bounce or complaint
Raw Payload Full SES notification for debugging

This audit trail helps you understand why addresses are bouncing. Common patterns:

  • NoEmail — The mailbox doesn't exist. Likely a typo or abandoned address.
  • Suppressed — SES has this address on its own suppression list from a previous bounce.
  • General — The receiving server rejected the message without a specific reason.

Reactivating Bounced Subscribers

If you know a bounced address has been fixed (e.g., the subscriber corrected a typo and re-signed up), you can reactivate them:

  1. Find the subscriber in your dashboard
  2. Click Reactivate
  3. Add a note explaining why (for the audit trail)

Reactivation:

  • Sets the subscriber back to active across all projects in the organization
  • Removes the address from the suppression list
  • Creates a reactivation event in the bounce history (with your name and notes)

Tip

Only reactivate when you have a good reason — like the subscriber contacted you directly. Reactivating stale bounced addresses and sending to them again will hurt your deliverability.

Deliverability Health Thresholds

MailJawn monitors your rates over a rolling 30-day window and assigns a health status.

Bounce Rate

Status Rate Action
Healthy Below 2% No concerns
Warning 2% – 5% Review your import sources and list hygiene
Review 5% – 10% Clean your list — remove subscribers who haven't engaged recently
Paused Above 10% Sending may be restricted to protect your reputation

Complaint Rate

Status Rate Action
Healthy Below 0.05% No concerns
Warning 0.05% – 0.1% Monitor closely — ensure you're only emailing opted-in subscribers
Review 0.1% – 0.5% Review your opt-in process and sending frequency
Paused Above 0.5% Sending may be restricted

Your overall health is determined by whichever rate is worse. If your bounce rate is "Healthy" but your complaint rate is "Warning," your overall status is "Warning."

Reducing Bounces

  • Validate on import — When importing a CSV, check for obvious typos (gmial.com, yhoo.com)
  • Use the SDK — Subscribers added through your app's SDK have verified, active email addresses
  • Clean regularly — Remove subscribers who haven't engaged in 6+ months
  • Watch import sources — If a batch import produces a spike in bounces, investigate that data source

Reducing Complaints

  • Only email opted-in subscribers — Never import a purchased list or email people who didn't explicitly subscribe
  • Set expectations — Tell subscribers what they'll receive and how often, at sign-up time
  • Make unsubscribing easy — A visible unsubscribe link reduces complaints. Subscribers who can't find it use "Report Spam" instead
  • Send relevant content — Irrelevant emails are the top driver of complaints. Use tags and segments to match content to audience

Bounces vs. Unsubscribes

These are different mechanisms:

Bounce Unsubscribe
What happened Email could not be delivered Subscriber chose to opt out
Scope Organization-wide suppression Project-level preference
Reversible? Yes (reactivation) Yes (subscriber can re-subscribe)
Your concern List hygiene Content relevance

Both reduce your active subscriber count, but for different reasons. A few unsubscribes per campaign are normal and healthy — it means your unsubscribe process works. A spike in bounces means your list has stale data.