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.