# Is softbounce still broken in Mautic? Goes straight to DNC?

**URL:** <https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357>\
**Category:** Product Support\
**Created:** [December 8, 2022, 9:00pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357 "2022-12-08T21:00:50Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dirk\_s](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/dirk_s/32/748_2.png) [@dirk\_s](https://forum.mautic.org/u/dirk_s)\
**Post date:** [December 8, 2022, 9:00pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/1 "2022-12-08T21:00:50Z")

</div>

With a client installation we see, that soft bounces (with Mailjet it thats relevant) seem to go straight to DNC. Thus the behavior is like a real hard bounce?

When I did a research I found those relevant info at Github:

- stale issue: [Soft bounce goes to lead\_donotcontact · Issue #9190 · mautic/mautic · GitHub](https://github.com/mautic/mautic/issues/9190)
- closed, not merged PR: [Fix soft bounce goes to DNC #9190 by skacco · Pull Request #9236 · mautic/mautic · GitHub](https://github.com/mautic/mautic/pull/9236)

By being added directly to DNC, it looks like there is no second chance for a soft bounced recipients mail.

How do you handle it? Did you find a workaround?

---

<div class="post-metadata">

**Author:** ![dirk\_s](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/dirk_s/32/748_2.png) [@dirk\_s](https://forum.mautic.org/u/dirk_s)\
**Post date:** [December 8, 2022, 9:11pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/2 "2022-12-08T21:11:36Z")

</div>

Looks like there is no differentiation of soft bounce / hard bounce in Mautic?

[https://developer.mautic.org/#add-do-not-contact](https://developer.mautic.org/#add-do-not-contact)

> Int value of the reason. Use Contacts constants: Contacts::UNSUBSCRIBED (1), Contacts::BOUNCED (2), Contacts::MANUAL (3). Default is Manual

My question: Is Mautic or the Mailjet adapter to differentiate the comments section of the bounce to identify if it should go to DNC or not? Or is Mautic putting all Bounced Contacts to DNC?

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [December 9, 2022, 8:14am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/3 "2022-12-09T08:14:51Z")

</div>

Can you plz check the unsub reason for this particular contact?  
It should contain the error message as reason for unsubscribe.

Looks like this:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/mautic/original/2X/7/7967ad723be96735054e6121e0611425ec5c115b.png)

---

<div class="post-metadata">

**Author:** ![dirk\_s](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/dirk_s/32/748_2.png) [@dirk\_s](https://forum.mautic.org/u/dirk_s)\
**Post date:** [December 9, 2022, 8:55am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/4 "2022-12-09T08:55:48Z")

</div>

Hi @joeyk … sure, I looked them up in the database. The problem is, as long as the reason can be such different things hiding in the comments - from simple things like temporary problems to spam, the comments would need to be analyzed to have the proper treatment of the bounce.

There is only one DNC Reason for bounce - it doesn’t differentiate between Soft and Hard Bounce. The comments are completely different by provider. So the specific adapter needs to handle it. I tried to look up in the code, if the Mailjet adapter makes any difference in handling by comment. But I havn’t found any indication that it will be analyzed.

See an example from the DB log.

- “:” until now Mailjet Support wasn’t able to properly explain that reason
- “mailjet:preblocked” this contact was preemptively blocked by Mailjet, as there was some trouble with other Mailjet accounts sending to this contact (can be manually asked to be lifted) → should not land on the DNC list
- “system:connection issue” → should not land on the DNC list.
- “spam:sender blocked” → should go to DNC
- “recipient:user unknown” → should go to DNC

 ![Bildschirm­foto 2022-12-08 um 22.29.14](https://us1.discourse-cdn.com/flex020/uploads/mautic/original/2X/a/a7681cc2fc594a3b29c9b5c3125b9455903d4130.png)

So my question is: is there any part in the code - either core or mailer system adapter - that analyses that comments?

If we could check for the DNC reason / comment, we could easily build a campaign the continuously handles that bounces properly. For now I will work with my client to regularly remove DNC for reasons that don’t qualify for DNC.

Not sure if Amazon SES / Sparkpost Adapters are more advanced in Mautic?

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [December 9, 2022, 9:03am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/5 "2022-12-09T09:03:22Z")

</div>

Yeah, I can relate to this.  
Each providers sends a different webhook as feedback loop.  
They all have their own ‘language’ (which sucks) and Mautic tries to understand what that provider meant.  
The general idea is , that response codes which start with 4xx are soft, 5xx are hard bounces.  
I know for sure, that Amazon SES does a lot better job then this what you’ve show, so does Sendgrid.  
Maybe reach out to @Abu\_Musa on slack, he can help.

---

<div class="post-metadata">

**Author:** ![mneumann](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/mneumann/32/2512_2.png) [@mneumann](https://forum.mautic.org/u/mneumann)\
**Post date:** [December 14, 2022, 9:59am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/6 "2022-12-14T09:59:02Z")

</div>

I am using Amazon SES, where the differentiation between soft and hard bounce works fine. But I was writing my own bounce handling in n8n, because it gives me more granular control on how often a soft bounce is being sent, etc. If you are interested, I think that can be adapted to Mailjet as well.

---

<div class="post-metadata">

**Author:** ![sfahrenkrog1](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/sfahrenkrog1/32/4583_2.png) [@sfahrenkrog1](https://forum.mautic.org/u/sfahrenkrog1)\
**Post date:** [December 14, 2022, 5:42pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/7 "2022-12-14T17:42:44Z")

</div>

Hi Dirk

I could confirm this is an issue. We disable the Mautic bounce handling and use our own script to classify the bounce as soft (do nothing) or hard bounce (set do not contact via mautic api).

Another problem: the original bounce message from the bounce mail is not stored in mautic. This would make things easier.

Greetings  
Sebastian

---

<div class="post-metadata">

**Author:** ![dirk\_s](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/dirk_s/32/748_2.png) [@dirk\_s](https://forum.mautic.org/u/dirk_s)\
**Post date:** [December 14, 2022, 9:00pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/8 "2022-12-14T21:00:48Z")

</div>

Mailjet stores the bounce reason within Mautic. If it was available in a campaign, the bounce handling could actually be a campaign 😉

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [December 15, 2022, 8:07am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/9 "2022-12-15T08:07:31Z")

</div>

DNC reason is not the bounce reason?

---

<div class="post-metadata">

**Author:** ![sfahrenkrog1](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/sfahrenkrog1/32/4583_2.png) [@sfahrenkrog1](https://forum.mautic.org/u/sfahrenkrog1)\
**Post date:** [December 15, 2022, 10:14am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/10 "2022-12-15T10:14:31Z")

</div>

Hi Joey

In most cases: no. The reason is the interpretation result from mautic not the real bounce message.  
And there are a lot of misinterpretations of the bounce messages.

For example: some email provider send bounce messages about mails that got greylisted. These are emails which just get delayed. Mautic sets them to do not contact with a bounce reason I forgot but which is not related to the real reason.

So I think it would be good to have the original messages in the bounce reason to re-evaluate.

Greetings  
Sebastian

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [December 15, 2022, 10:46am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/11 "2022-12-15T10:46:01Z")

</div>

Hello Sebastian,  
We also have our own bounce and complaint processing partially due to the fact, that everything runs through Amazon and we needed our own solution to understand whos email quality needs to be improved.  
I think the problem is, that these messages are changing as the providers are evolving, and Mautic needs to re-align the classification from time to time, which we don’t have capacity to do ☹  
Joey

---

<div class="post-metadata">

**Author:** ![sfahrenkrog1](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/sfahrenkrog1/32/4583_2.png) [@sfahrenkrog1](https://forum.mautic.org/u/sfahrenkrog1)\
**Post date:** [December 15, 2022, 11:24am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/12 "2022-12-15T11:24:28Z")

</div>

Hey Joey

Same here. The problem is: there is a huge ampunt of email providers and each one of them got a different behaviour and use differnt messages.

Some providers also tend to use only the maillog and don’t (or rarely) send bounce messages.

One of the best email bounce classification open source project is this one:

> **[Sisimai | Library to parse bounce mails | Sisimai: Mail Analyzing Interface](https://libsisimai.org/en/)**
>
> Library to parse bounce mails, Making data structure as JSON from bounce mails

They support a huge amount of email providers and I think they are the best starting point for the email bounce classification.

greetings  
Sebastian

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [December 15, 2022, 11:25am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/13 "2022-12-15T11:25:43Z")

</div>

Looks awesome, thank you for sharing.

---

<div class="post-metadata">

**Author:** ![sfahrenkrog1](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/sfahrenkrog1/32/4583_2.png) [@sfahrenkrog1](https://forum.mautic.org/u/sfahrenkrog1)\
**Post date:** [December 15, 2022, 11:27am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/14 "2022-12-15T11:27:22Z")

</div>

At the moment I also collect different Bounce Messages. I would like to compile a lists with different reaons and the classification in : Soft Bounce or Hardbounce or Client Action needed

---

<div class="post-metadata">

**Author:** ![dirk\_s](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/dirk_s/32/748_2.png) [@dirk\_s](https://forum.mautic.org/u/dirk_s)\
**Post date:** [December 19, 2022, 5:44pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/15 "2022-12-19T17:44:27Z")

</div>

So far the webhooks of mailjet don’t even differentiate between hard and soft bounce. They only have a bounce webhool. This means unless you evaluate bounce reason and comment, it will always have wrong results (too many set to DNC).

---

<div class="post-metadata">

**Author:** ![zwf](https://avatars.discourse-cdn.com/v4/letter/z/f475e1/32.png) [@zwf](https://forum.mautic.org/u/zwf)\
**Post date:** [January 4, 2024, 3:35pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/16 "2024-01-04T15:35:09Z")

</div>

Hello !

I got the [same issue](https://forum.mautic.org/t/different-number-of-contacts-in-segment-and-email-sent/30273/8)… and it’s quite critical.

Did you found something interesting with Sisimai or any hint of the things to do in order to fix this situation ?

Thanks

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [January 4, 2024, 8:32pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/17 "2024-01-04T20:32:25Z")

</div>

Are you using amazon ses?

---

<div class="post-metadata">

**Author:** ![zwf](https://avatars.discourse-cdn.com/v4/letter/z/f475e1/32.png) [@zwf](https://forum.mautic.org/u/zwf)\
**Post date:** [January 5, 2024, 8:16am UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/18 "2024-01-05T08:16:58Z")

</div>

Yes it is AWS SES

---

<div class="post-metadata">

**Author:** ![joeyk](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/joeyk/32/11164_2.png) [@joeyk](https://forum.mautic.org/u/joeyk)\
**Post date:** [January 5, 2024, 4:33pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/19 "2024-01-05T16:33:18Z")

</div>

I have a troubleshooting tool, that might be able to help you. It visualises Amazon SES logs. You can hook it up before you send next time, and we can check what the responses are. It takes the actual Amazon SES responses, stores and analyses them.

It’s a paid app, but I can offer you the first run for free, and you won’t need any more tests anyway.

Joey

---

<div class="post-metadata">

**Author:** ![gandhi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/gandhi/32/13476_2.png) [@gandhi](https://forum.mautic.org/u/gandhi)\
**Post date:** [September 23, 2025, 12:09pm UTC](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357/20 "2025-09-23T12:09:38Z")

</div>

I’m currently working on a Mautic setup where I need to track both **hard** and **soft bounces**. I’m using **SparkPost** as my mailer.

I want to know:

1. Is it possible to **customize Mautic** to track **soft bounces** separately?

2. Can we **store soft bounce counts** in the database or display them in the email reports?

3. Any guidance on **where to implement this logic** in Mautic, especially in the `/mailer/callback` route?

Thanks in advance for any insights or suggestions!

[Next page](https://forum.mautic.org/t/is-softbounce-still-broken-in-mautic-goes-straight-to-dnc/26357.md?page=2)
