Knowledge base

A retry ladder of your own

custom retry ladders
Intervals instead of a single value

retry-after and backoff-retry-after accept not one value but a comma-separated list of intervals — up to 30 steps.

The last interval applies until the message bounces, and after a service restart the step count starts over.

A ladder is smarter than a single interval for receivers whose delivery probability drops over time: early retries more often, later ones less often.

The main trap is that a restart resets the steps. After a service restart messages start again from the first step: frequent restarts keep the queue on short intervals, and the ladder never reaches the infrequent retries.
What the Hub does. It writes the backoff mode ladder — backoff-retry-after from the preset: “Careful” — 2h,6h,12h,24h, “Balanced” — 1h,3h,6h,12h, “Aggressive” — 30m,1h,3h,6h. The ordinary retry-after in the policy template is a single value, 30m.
Recommended values

When to use which:

Schedule When
the 10m,10m,30m,1h,2h,4h ladder the receiver usually recovers within hours
a single value the interval does not depend on message age

The ladder ends with its last value: it repeats until bounce-after.

The list of up to 30 intervals, the last step until the bounce and the reset on restart come from the manual (§ 11.14). The choice of ladders is ours.
Example configuration
<domain example.com>
    retry-after 10m,10m,10m,30m,30m,1h,2h,4h,10h</domain>
A shortened ladder from the manual’s example: frequent retries in the first hours, then once every ten hours until the bounce.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
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
Check the schedule in force:
pmta show settings example.com | grep retry-after
The output shows the list of steps as it was written; without a list, a single value applies.
In the Hub
Cost of a mistake
reversible: harms only while it is set
Scenarios
Tune the pace for a provider · Untangle a stuck queue