The connection was established, the conversation began — and the receiver went silent. The manual names two causes: it is overloaded or there are connectivity problems.
🔴 The wait lasts ten minutes, and it cannot be configured. In a product with hundreds of configurable directives this is rare, and it matters: each stalled attempt occupies a slot in the connection count for ten minutes.
Hence a consequence about cost. A receiver that is silent is more expensive than a receiver that refuses: a refusal frees the connection right away, silence holds it for ten minutes. On a node with a limited number of outgoing connections, one such receiver can take up a noticeable share of them.
⚠️ Yet it is the most expensive one: a silent receiver holds connections for ten minutes each. It can be noticed on our charts indirectly — the failure rate is low, while the number of open connections hits the ceiling.
It is fixed by limiting connections to the problematic receiver — and the Hub can make such an edit once the decision is made.
What to do about it:
| Action | Helps |
|---|---|
| lower the connection ceiling for this receiver | yes — it limits the losses |
| shorten the wait time | impossible, it is not configurable |
| raise the overall connection ceiling | no, a silent receiver will eat that too |
The sign in numbers: many connections are open, few messages go out, there are almost no refusals. Ordinary overload looks different — there the refusal rate grows.
# the only lever against a silent receiver <domain slow.example.com> max-smtp-out 2</domain>
3 relations
3 articles
◇A queue is a receiving server together with a sending addressThe engine groups messages by the “recipient domain plus sending address” pair: one domain from two addresses is two independent queues with their own counters, connections and mode.◇Recipients deferred after a temporary refusalA recipient to whom the receiver responded with 4xx moves into a separate waiting area with a per-receiver interval; two commands can release it early.◇A retry ladder of your ownretry-after and backoff-retry-after accept a list of intervals — up to 30 steps, and the last one applies until the bounce.