Skip to main content
Review notes:
  • Is it correct that Helo might “graduate” a soft bounce into a hard bounce if it keeps bouncing? Or should I remove that note?
An email bounce happens when a message you send fails to be delivered to the recipient’s inbox and is returned to the sender with an error notice. A bounce can be permanent (hard bounce) or temporary (soft bounce), and each type of bounce is treated differently in Helo.

Hard bounces

A hard bounce is a permanent delivery failure. The receiving server has definitively rejected the message. Common causes include:
  • The recipient email address does not exist
  • The domain does not exist or has no mail server
  • The receiving server has explicitly blocked your sender
If you continue to send to email addresses that hard-bounced, that creates a real risks to your sending reputation. That’s why Helo immediately adds any hard-bounced addresses to your suppression list to prevent future delivery attempts.

Soft bounces

A soft bounce is a temporary delivery failure. The address is valid, but delivery failed at the time of sending. Common causes include:
  • The recipient’s mailbox is full
  • The receiving mail server is temporarily unavailable or throttling inbound mail
  • The message was too large to be accepted
Soft bounces may resolve on their own. However, if an address soft bounces repeatedly over time, Helo might treat it as a hard bounce and stop sending to it.

Understanding bounce rates in Helo

Because bounces can have such a crucial impact on deliverability, Helo makes it easy for you to stay on top of bounces. For each of your Channels, you can easily see the aggregated bounce rates an we alert you in case your bounce rates exceed certain thresholds. Plus, whenever a message bounces, you can see the bounce details (including the actual SMTP response we’ve received from the inbox provider) in the event details.

Simulating bounces

You might want to test bounce handling in Helo but don’t actually want to send to invalid email addresses (because again, that can really damage your sending reputation). That’s why in Helo you can simulate bounces by sending to the bounce-test.helohq.com domain. The test address corresponds to the bounce type (hard/soft), and you can use the + symbol to further specify the bounce reason. For example, sending a test message to hard+suppressed@bounce-test.helohq.com will create a hard bounce with sub-type of Suppressed. See the table below for a list of options: Test bounces will show up in your Channel’s stats and activity (so you can review the bounce details). They’ll also trigger supressions (in case of a hard bounce) and webhooks (in case you have bounce webhooks set up). They will not negatively impact your deliverability or trigger bounce thresholds though.

How to minimize bounces

Keeping your bounce rate low is critical to maintaining deliverability. Here are the most effective practices: Keep your list clean
  • Remove hard-bounced addresses immediately after a bounce event. Helo handles this for you automatically.
  • Regularly prune addresses that have not engaged in a long time
  • Use double opt-in for new subscribers to verify addresses before adding them to your list
Validate addresses before sending
  • Use an email validation service at the point of address capture to catch obvious typos and fake addresses
  • Avoid purchasing third-party email lists — they tend to be full of stale and invalid addresses
Warm up new sending infrastructure gradually
  • If you’re starting to send from a new domain or IP, ramp up volume slowly
  • Sudden spikes in volume from a cold sender look suspicious to receiving servers and can result in temporary rejections (soft bounces)
Monitor and act on alerts
  • Helo will surface bounce rate warnings before they become critical — check your Channel health regularly and investigate spikes as soon as they appear
  • Use the Webhooks feature to receive real-time bounced events so you can update your list immediately without polling
Use a Sandbox Channel during development
  • Test your integration with a Sandbox Channel to avoid accidentally sending to real addresses during development, which can contaminate your bounce metrics from day one