Knowledge base

The host connected and stays silent

no-answer-from-host
Soft — check whether it is our network

The connection was established, no reply followed.

Response codes — 4.X.X or 5.X.X. The category is assigned by a pattern on the receiver’s reply text, not by the code itself: the pattern list can be extended with your own patterns and your own names (bounce-category-patterns).

The vendor defines this category as the server’s silence, not the absence of the address — and the 4xx code among its codes confirms it. That is why for us it is soft: addresses are not removed on it.

A category is an interpretation, not a fact. It was chosen by a pattern that matched the reply text against an expression. The same reply from another receiver may land in another category, and our own pattern would override it altogether. A decision about an address should be built on the receiver’s words, with the category read as a hint.
What the Hub does. It does not count it as hard: the vendor defines this category as the server’s silence after connecting, with 4xx or 5xx codes — the mailbox may be alive. The address is not removed for it.

It was not always so: while the category was listed as hard, live addresses went to the blocklist because of someone else’s outage, and the lists of hard categories diverged between modules. Now the list is one for the whole Hub — bad-mailbox, inactive-mailbox, bad-domain — and this category is not in it.

Recommended values

What to do with this bounce: check whether it is our network.

Question Answer
what the bounce is about not the address
our axis soft
will a retry help yes, that is what retries are for

Look at the reply text, not just the category — the cause is in it, while the category only sorts bounces onto shelves.

The assignment to our axis and the recommended action are ours. From the manual come the category’s definition and its response codes.
Example configuration
# the receiver's reply the category is assigned by
421 4.4.2 No answer from host
A 4xx code means the receiver simply did not answer — not at all that the address does not exist.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
▲

Common mistakes and problems

what people get wrong and how it ends3 mistakes▶

Removing an address without checking the category against the reply text

§ 12

What it costsThe category was assigned by a pattern on the text. An error in the pattern means a live address removed, and there is nowhere to get it back from: it is already on the blocklist.
How to spot itThe address database shrinks faster than real bounces explain.
How to do it rightCheck the reply text against the category, at least selectively. Your own patterns are more precise than the vendor’s where it matters.

Treating the category as final

§ 12

What it costsThe same reply from another receiver will land in another category: the patterns are shared by everyone, the receivers’ wording is not.
How to spot itA bounce with the same meaning ends up in different categories for different receivers.
How to do it rightBuild the decision on the receiver’s words, and read the category as a hint.

Not telling a bounce about the address from a bounce about the domain

§ 12

What it costsNo domain is not the same as no recipient: in the first case the whole right-hand part is wrong, in the second only the left. Writing them off the same way means losing the addresses of a domain that had a temporary problem with its records.
How to spot itAll addresses of one domain drop off at once.
How to do it rightLook at how many addresses of the domain dropped off at once: the mass scale is the sign of a domain problem, not an address problem.
Compatibility
PowerMTA 6.0
described in the manual of this version · platform: any
The vendor does not state the first version for every directive — there is no note here. The name also appears in the 5.0 edition of the manual.
How to check on the node
Where this bounce shows up:
pmta show queues --errors example.com
pmtastats bounce-categories --bounceCat no-answer-from-host /var/log/pmta/acct-*.csv
The first prints the queue’s recent errors — the receiver’s words are there. The second counts how many bounces fell into this category over the accounting period.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Bounce classification