What is considered a soft bounce on Amazon SES, and how can I monitor soft bounces?

3 minute read
1

What is considered a soft bounce on Amazon Simple Email Service (Amazon SES)? What are the types of soft bounces? How can I monitor soft bounces on Amazon SES?

Resolution

A soft bounce or a transient bounce is a bounced email that's rejected by the recipient mail server because of a temporary failure. Temporary failures that can lead to a soft bounce include:

  • The recipient mailbox is full.
  • The recipient mailbox is temporarily unavailable.
  • The server limits are exceeded.
  • The server is overloaded.

It's best practice to retry soft bounces, which are caused by temporary issues.

Note: If you're using Simple Mail Transfer Protocol (SMTP) with Amazon SES, then the specific error codes related to soft bounces are 421, 450, 451, or 452. For the descriptions of these error codes, see Simple Mail Transfer Protocol (SMTP) Enhanced Status Codes Registry on the Internet Assigned Numbers Authority (IANA) website.

Amazon SES categorizes soft bounces or transient bounces as these subtypes:

  • General: The recipient's email provider sent a general transient bounce. This typically happens when the recipient has set up an "out of the office" automatic reply. This type of soft bounce generally fixes itself. If the bounce was a result of an "out of the office" reply, then the soft bounce resolves itself after the automatic reply is removed by the recipient.
  • MailboxFull: The recipient mailbox is full and can't accept any more emails. You might be able to send emails to the same recipient later when their mailbox is no longer full.
  • MessageTooLarge: The recipient mail server can't accept the email because the file size of the message is too large. You can try to resolve this type of bounce by reducing your message size.
  • ContentRejected: The recipient mail server doesn't allow the content of the email. You can try to resolve this type of bounce by modifying the content of your email.
  • AttachmentRejected: The email contains an unacceptable attachment. Some email providers block emails with attachments of a certain file type or large attachments. After you remove or modify your email attachments, you can try to send the email to this recipient again.

For more detail on these soft bounce subtypes, see Bounce types.

To monitor soft bounces on Amazon SES, you can set up notifications using Amazon Simple Notification Service (Amazon SNS). The SNS notifications are triggered whenever any type of bounce is received.

To determine if the rejection is a soft bounce, review the content of the SNS notification. If bounceType is Transient, then it's a soft bounce. To determine the type of soft bounce, review the value for bounceSubType.


AWS OFFICIAL
AWS OFFICIALUpdated 2 years ago
3 Comments

Thank you, this was useful but incomplete.

For example, SES is incorrectly labeling "invalid domain" as a "soft bounce". And it is listed as 544 or "5.4.4", so the four codes you listed for "soft bounces" are incomplete.

This means we can't just read the "bounceType": "Transient", line. https://github.com/knadh/listmonk/issues/1463

Instead, we have to read the status code:

        "status": "5.4.4",
        "emailAddress": "eg@gmail.ocm",
        "diagnosticCode": "smtp; 550 5.4.4 Invalid domain"

But I need the list of status & diagnostic codes. The links in your post are not adequate.

The IANA link/list is far too extensive and does not even have "544" nor "5.4.4".

I would get an error when listing these in my comment, so I listed them here https://github.com/knadh/listmonk/issues/1463#issuecomment-1683221839 instead. We need a complete list like that.

User21
replied 7 months ago

Thank you for your comment. We'll review and update the Knowledge Center article as needed.

profile pictureAWS
MODERATOR
replied 7 months ago

What I understood is that you want the Transient/General to be treated as Hard Bounces. If that is the case, then it cannot be done, as Transient simply means it is a SoftBounce as per the documentation here: https://docs.aws.amazon.com/ses/latest/dg/notification-contents.html#bounce-types:~:text=The%20bounce%20object,your%20mailing%20lists.

And this is the meaning of the Transient/General from the documentation as well: https://docs.aws.amazon.com/ses/latest/dg/notification-contents.html#bounce-types:~:text=bounce%20rate%20metric.-,Transient,automatic%20responses%20when%20it%20calculates%20the%20bounce%20rate%20for%20your%20account.,-Transient

The meaning of the x.4.4 is listed in here: https://datatracker.ietf.org/doc/html/rfc3463#:~:text=X.4.4%20%20%20Unable,to%20route%0A%20%20%20%20%20%20%20%20%20error.

Please note that SES does not control the status code that it shows in the logs. This status code is sent by the MTA/ISP to SES when the SMTP conversation takes place. I am more interested of the fact that the ISP is sending a code stating that the domain is invalid, and in the same time, it sends a code that means Transient/General. This however should be investigated in a case with SES Premium Support Team. If you have a message ID that is not older that 30 days, you can open a case with SES team to investigate the discrepancy between the message and the code that SES receives from the MTA/ISP.

Many thanks! Mo

AWS
replied 7 months ago