Replies and state
Behavior Reviewed · not yet fact-checked
In short
What happens when an email bounces in Reply?
A bounce marks the contact Bounced and feeds the sequence bounce rate, recalculated once an hour. At a 4% rate the sequence toggle turns orange; at 8% Reply stops the sending step until the end of the day — but only once 200 or more emails have gone out. Follow-ups keep sending, and the step resumes next day.
At a glance
| Aspect | Detail |
|---|---|
| What it governs | What a failed delivery changes — contact state, step execution, and sequence health |
| Trigger | The receiving server rejects a sent email (reported via Delivery Status Notification, or directly by the ESP when using SendGrid with bounce webhooks) |
| Inputs | Bounce type (hard or soft), sequence bounce rate, emails sent today |
| Result | Contact becomes Bounced; at 8% bounce rate with ≥200 emails sent, the step stops until end of day |
| Configurable | No — thresholds are fixed. Pre-send email validation reduces bounces up front |
| Does not | Stop follow-up emails (they send even past the threshold), permanently suspend the sequence, or repair the bad address |
| Plans | All plans |
Rule summary
A bounced email marks the contact Bounced and counts into the sequence's bounce rate. The bounce rate is recalculated once an hour over a 24-hour window. Crossing 4% turns the sequence toggle orange as a warning; crossing 8% stops the sending step for the rest of the day — provided at least 200 emails were sent — and the step resumes automatically the next day with the counter reset to zero.
Trigger
The receiving mail server rejects a sent email. Reply learns about it from the Delivery Status Notification (DSN) that arrives in the sending mailbox — or, when you send through SendGrid with bounce webhooks connected, directly from SendGrid with no DSN involved.
Decision logic
- Classify the failure — hard bounce (permanently rejected: invalid or nonexistent address) or soft bounce (temporarily undeliverable, for example a full inbox).
- Set the contact's status to
Bounced. No further automated sends go to that address. - Recalculate the sequence bounce rate (hourly, across all email steps and all sending email accounts in the sequence):
Bounce rate in % = Bounced emails x 100 / Total people
Then apply the thresholds:
| Condition | Effect |
|---|---|
| Bounce rate reaches 4% | Sequence toggle turns orange — warning only, sending continues |
| Bounce rate reaches 8%, fewer than 200 emails sent today | Nothing stops — the 200-email floor protects small sends from statistical noise |
| Bounce rate reaches 8%, 200 or more emails sent today | The sending step stops until the end of the current day; you are notified; the toggle turns red |
The next day, the stopped step resumes during your sending-window hours and the bounce threshold resets to 0.
Result
The bounced contact stops receiving sequence email. The sequence itself is never permanently suspended by bounces: the stopped step resumes automatically the next day. (Under the legacy rule the limit was 15% and suspension was permanent — that behavior was replaced by this daily-reset model.)
State changes
| Field | Change |
|---|---|
| Contact status | → Bounced |
| Sequence toggle | Orange at 4%, red at 8% (with the 200-email floor) |
| Statistics | Bounce counts into bounce rate (Bounced emails × 100 / Total people); a bounce is never a delivery |
Exceptions
- Follow-up emails are sent even when the 8% threshold is reached — only the sending step stops.
- If 199 or fewer emails were sent in the current window, no step stops regardless of the rate.
- With SendGrid bounce webhooks, there is no DSN in the mailbox; Reply records the bounce with the reason SendGrid provides.
Configuration that changes this rule
The thresholds themselves are not configurable. What you can control is the input: validate addresses before sending with the email validation service (see Prospect data), and check the DSN error codes in the sending mailbox to understand individual failures — see Why was an email not sent.
Limits
| Limit | Value |
|---|---|
| Warning threshold (orange toggle) | 4% bounce rate |
| Stop threshold (red toggle, step stops until end of day) | 8% bounce rate |
| Daily email floor before the stop rule applies | 200 emails per sequence per sending window |
| Recalculation frequency | Once an hour |
| Rate window | 24 hours; resets to 0 each new day |
FAQ
Does an 8% bounce rate kill the sequence permanently?
No. The sending step stops until the end of the current day and resumes the next day during your sending window, with the bounce counter reset to 0. Permanent suspension was the legacy behavior at 15% and no longer applies.
Do follow-ups stop when the threshold is reached?
No. Follow-up emails continue sending even after the 8% threshold stops the step. Only new sends from the affected step wait for the next day.
Can I send to a contact again after a bounce?
Not at the bounced address — fix or enrich the address on the contact record first. See Contacts and Statuses.
How do I see why a specific email bounced?
Open the Delivery Status Notification in the sending mailbox's inbox — it carries the bounce error code and explanation. Sequence-level errors also surface in the sequence Log tab; see Why was an email not sent.
Related
- Statistics calculation — bounce rate uses the Total-people denominator
- Sequence stopping — all the ways a sequence stops
- Reply detection — bounces are classified apart from replies
- Deliverability
- Statuses
Build with Reply
- REST API: docs.reply.io — contact status and validation endpoints
- MCP: agents.reply.io/mcp — sequence health and contact operations