Self-hosted email marketing with full source code. Pay once, own forever. Get AcelleMail — $74 →

Operations · Updated May 2026

Soft bounce

Transient delivery failure

A soft bounce is a transient email delivery failure — the receiving server has temporarily refused the message (mailbox full, server down, greylisting) and the sender may retry. AcelleMail records soft bounces as BounceType::SOFT but does not auto-blacklist on a single occurrence.

§1

Definition

A soft bounce is a transient email delivery failure. The receiving mail server has refused the message for now, but the cause is something that may resolve on its own — the recipient mailbox is over its quota, the receiving server is temporarily down or rate-limiting, the message has been greylisted on first attempt, or there is a TLS handshake hiccup. The sender is expected to retry. Compare to a hard bounce — a permanent rejection that should never be retried.

§2

How AcelleMail handles soft bounces

The same BounceType enum that drives hard-bounce handling has a second case:

enum BounceType: string
{
    case HARD = 'hard';
    case SOFT = 'soft';
}

A SOFT webhook event from the sending vendor (SES, Mailgun, SparkPost, etc.) is recorded in BounceLog exactly like a hard bounce, but the RecordBounce listener does not automatically blacklist the subscriber on a single occurrence. The address remains active and is included in subsequent campaigns. If soft bounces continue to accumulate over a configurable streak, the operator can promote the address to a blacklist via the bounce-handler policies — but a single soft bounce is treated as noise.

§3

Why the distinction matters

Conflating soft and hard bounces is the most common bounce-handling mistake on small platforms. Auto-blacklisting on a soft bounce shrinks the list every time a recipient's server has a hiccup — a single Gmail outage can shed thousands of legitimate subscribers. Treating hard bounces as soft (retrying anyway) burns sender reputation. AcelleMail enforces the split at the data-model layer (BounceType::HARD vs BounceType::SOFT) so listeners cannot accidentally treat one as the other.

§4

Common soft-bounce reasons

  • 4xx SMTP responses — the entire 4xx class is "transient failure, retry."
  • Mailbox full — the recipient has hit their storage cap; usually clears within days.
  • Greylisting — anti-spam technique that defers a first-time sender; legitimate retries succeed within minutes.
  • Rate limiting — the receiver is throttling traffic from this IP/domain; back off and retry.
  • TLS / connection issues — a transient network or certificate problem on the receiving side.

The full operator playbook — when soft bounces should escalate to blacklist, what streak length is sane, and how to read the raw vendor reasons — lives in deliverability §8.

Sources

Every claim on this page traces to one of these.

Want to run this in production?

AcelleMail is a one-time-license self-hosted email platform with first-class support for every term in this glossary. No recurring fees, no per-subscriber pricing, full source code.

Get AcelleMail — $74 Try Live Demo