Knowledge base

Temporary queue failure

tq
It never got to the messages — the connection itself failed

The attempt failed at the queue level: the connection was refused, was not established or dropped before the conversation about messages.

The record type letter is tq. It comes first in the line, and that is how the parser tells one type from another.

It differs from an ordinary temporary failure in that the messages have nothing to do with it: there was not a single one that got discussed.

One such record means a failure for the whole queue at once, not for one recipient — and so it carries a different weight in counts.

The main trap is counting things from the wrong records. One record type answers one question, and a substitution gives a plausible wrong number: attempts instead of messages, queues instead of recipients, the day a report was received instead of the day of sending.
What the Hub does. It reads them — the records arrive as a stream through a webhook, and all the analytics is built on them: volumes, deliverability, bounces by category.
Recommended values

Which question this record answers:

Question Is it this record
it never got to the messages — the connection itself failed yes
how many messages in total only together with the other types
why it happened look at the reply text, not at the record type

Record types are enabled and disabled in the accounting block. A disabled type does not disappear from a report — it disappears from the data, and the absence of events becomes indistinguishable from there genuinely being none.

The separation of questions is ours. From the manual here are the condition under which the record appears and its letter.
Example configuration
# the first letter of the line is the record type
tq,2019-02-08 21:53:41+0000,...
Parsing accounting starts with this letter: all the other columns make sense only in combination with it.
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
How many records of each type arrived:
grep -c "^tq," /var/log/pmta/acct-*.csv
cut -d, -f1 /var/log/pmta/acct-*.csv | sort | uniq -c
Zero while sending is going on means one of two things: there are no events of this kind, or the record type is disabled in the accounting block. The second command helps tell them apart — it prints a summary across all types.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Untangle a stuck queue