Inquiry on Email Delivery Issues and TransientFailure Retry Configuration

While attempting to send an email, there seems to be a connection issue, and the email has not been received yet. The system logs indicate a “TransientFailure.”

When does the system consider the email as bounced? Is there a configuration setting for the retry limit? I expect that after three attempts with TransientFailure, the email should be marked as bounced

See the Configuring Message Life and Retry Times Using Lua section here:

The LUA configuration provided below pertains to the ‘get_queue_config’ function in Kumo. how I include the specified parameters(max_age,retry_interval,max_retry_interval) within the existing LUA code:

**parameters to add **

max_age = '5 minutes', retry_interval = '5 minutes', max_retry_interval = '5 minutes',

Existing code
`
kumo.on(‘get_queue_config’, function(domain, tenant, campaign, routing_domain)
print (“enter get_queue_config”)

    if domain == 'amqp' then
            return kumo.make_queue_config {
                    protocol = {
                            custom_lua = {
                                    constructor = 'make.amqp',
                            },
                    },
            }
    end
    return kumo.make_queue_config {}

end)`

This should work:

kumo.on('get_queue_config', function(domain, tenant, campaign, routing_domain)
        print ("enter get_queue_config")

        if domain == 'amqp' then
                return kumo.make_queue_config {
                        max_age = '5 minutes',
                        retry_interval = '5 minutes',
                        max_retry_interval = '5 minutes',
                        protocol = {
                                custom_lua = {
                                        constructor = 'make.amqp',
                                },
                        },
                }
        end
        return kumo.make_queue_config {}
end)

Hello, thank you for responding. Unfortunately, the configuration provided does not meet my expectations. Instead of transitioning to a bounce status after reaching the retry interval, the email currently shows a “TransientFailure” status, which is not what I anticipated. @faithful-ostrich @yearning-hyena

These are the key settings for controlling message life:

max_age = ‘5 minutes’,
retry_interval = ‘10 minutes’,
max_retry_interval = ‘100 minutes’,

In the above, max_age determines when a transient fail is turned into a permanent bounce.

This can also be achieved with max retry interval

The sample shared above appears to be dependant on AMQP. If you are setting this for all messaging, remove the “if domain ==“ part.

iam changing config like this

`kumo.on(‘get_queue_config’, function(domain, tenant, campaign, routing_domain)
print (“enter get_queue_config”)

    if domain == 'amqp' then
            return kumo.make_queue_config {
                    max_age = '5 minutes',
                        retry_interval = '10 minutes',
                            max_retry_interval = '30 minutes',

                    protocol = {
                            custom_lua = {
                                    constructor = 'make.amqp',
                            },
                    },
            }
    end
    return kumo.make_queue_config {
             max_age = '5 minutes',
                                         retry_interval = '10 minutes',
                                                                         max_retry_interval = '30 minutes'
    }

end)`

But the mail not changed to bounce status.

post all relevant log lines.

{“type":“TransientFailure”,“id”:“9eacc764be5311eea01d0cc47a84106e”,“sender”:"info@kumo.domain.com,“recipient”:"softcheck+3@acctbnce1.domain.com",“queue”:"pool-2@acctbnce1.domain.com",“site”:“139.99.8.38_1282->accntbounce.domain.com@smtp_client”,“size”:7967,“response”:{“code”:400,“enhanced_code”:null,“content”:“KumoMTA internal: failed to connect to any candidate hosts: connect to ResolvedAddress { name: "accntbounce.domain.com.", addr: 10.10.10.36 } port 25 and read initial banner: connect 10.10.10.36:25: Connection refused (os error 111)”,“command”:null},“peer_address”:null,“timestamp”:1706676331,“created”:1706497684,“num_attempts”:7,“bounce_classification”:“Uncategorized”,“egress_pool”:“pool-2”,“egress_source”:“139.99.8.38_1282”,“feedback_report”:null,“meta”:{“server_id”:“19”,“email_domain”:“acctbnce1.domain.com”,“tenant”:“pool-2”,“received_from”:“10.0.0.1”,“domain”:“kumo.domain.com”,“cid”:“422”,“pool_id”:“5”},“headers”:{“Subject”:“Test Email”,“X-Tracking-Id”:“9ea9683dbe5311eea01c0cc47a84106e”},“delivery_protocol”:“ESMTP”,“reception_protocol”:“HTTP”,“nodeid”:“e6f99c49-4874-4b30-b15a-1ad5e0cd4028”}

That is not all the relevant log lines.

Show all for the message.

Jan 31 05:09:49 development.domain.com kumod[3872492]: 2024-01-31T05:09:49.635735Z DEBUG localset-4 run{socket=PollEvented { io: Some(TcpStream { addr: 10.10.10.0:587, peer: 10.10.10.0:37018, fd: 58 }) }}:process: kumod::smtp_server: check_relaying: sender=kumo.domain.com recip=acctbnce1.regalwork.com relay_to_allowed=None relay_hosts_allowed=true relay_from_allowed=false → log_arf=false log_oob=false relay=true
Jan 31 05:09:49 development.domain.com kumod[3872492]: 2024-01-31T05:09:49.636283Z DEBUG logger kumod::logging: waiting until deadline=None for a log record

You didn’t show a received log line.

Show all the log lines for the message.

{“type":“TransientFailure”,“id”:“045a557cbe5111eea22a0cc47a84106e”,“sender”:"info@kumo.domain.com,“recipient”:"softcheck+1@acctbnce1.domain.com",“queue”:"pool-2@acctbnce1.domain.com",“site”:“10.10.10.2_1282->accntbounce.domain.com@smtp_client”,“size”:7969,“response”:{“code”:400,“enhanced_code”:null,“content”:“KumoMTA internal: failed to connect to any candidate hosts: connect to ResolvedAddress { name: "accntbounce.domain.com.", addr: 206.72.206.36 } port 25 and read initial banner: connect to 206.72.206.36:25: Connection refused (os error 111)”,“command”:null},“peer_address”:null,“timestamp”:1706678219,“created”:1706496566,“num_attempts”:7,“bounce_classification”:“Uncategorized”,“egress_pool”:“pool-2”,“egress_source”:“10.10.10.2_1282”,“feedback_report”:null,“meta”:{“tenant”:“pool-2”,“domain”:“kumo.domain.com”,“received_from”:“10.10.10.2”},“headers”:{“X-Tracking-Id”:“04598886be5111eea2290cc47a84106e”,“Subject”:“Test Email”},“delivery_protocol”:“ESMTP”,“reception_protocol”:“HTTP”,“nodeid”:“e6f99c49-4874-4b30-b15a-1ad5e0cd4028”}
{“type":“Delivery”,“id”:“f59a1f32bff711ee9ff20cc47a84106e”,“sender”:"info@kumo.domain.com,“recipient”:"softcheck+1@acctbnce1.domain.com",“queue”:“amqp”,“site”:“unspecified->amqp@lua:make.amqp”,“size”:1157,“response”:{“code”:200,“enhanced_code”:null,“content”:“NotRequested”,“command”:null},“peer_address”:{“name”:“Lua via make.amqp”,“addr”:“0.0.0.0”},“timestamp”:1706678219,“created”:1706678219,“num_attempts”:0,“bounce_classification”:“Uncategorized”,“egress_pool”:“unspecified”,“egress_source”:“unspecified”,“feedback_report”:null,“meta”:{“received_from”:“10.10.10.2”,“tenant”:“pool-2”,“domain”:“kumo.domain.com”},“headers”:{},“delivery_prot col”:“Lua”,“reception_protocol”:“LogRecord”,“nodeid”:“e6f99c49-4874-4b30-b15a-1ad5e0cd4028”}

{“type":“TransientFailure”,“id”:“6656fb3ebe5311eeab6e0cc47a84106e”,“sender”:"info@kumo.domain.com,“recipient”:"softcheck+2@acctbnce1.domain.com",“queue”:"pool-2@acctbnce1.domain.com",“site”:“10.10.10.2_1282->accntbounce.domain.com@smtp_client”,“size”:7969,“response”:{“code”:400,“enhanced_code”:null,“content”:“KumoMTA internal: failed to connect to any candidate hosts: connect to ResolvedAddress { name: "accntbounce.domain.com.", addr: 206.72.206.36 } port 25 and read initial banner: connect to 206.72.206.36:25: Connection refused (os error 111)”,“command”:null},“peer_address”:null,“timestamp”:1706678219,“created”:1706497590,“num_attempts”:7,“bounce_classification”:“Uncategorized”,“egress_pool”:“pool-2”,“egress_source”:“10.10.10.2_1282”,“feedback_report”:null,“meta”:{“tenant”:“pool-2”,“domain”:“kumo.domain.com”,“received_from”:“10.10.10.2”},“headers”:{“X-Tracking-Id”:“665600f5be5311eeab6d0cc47a84106e”,“Subject”:“Test Email”},“delivery_protocol”:“ESMTP”,“reception_protocol”:“HTTP”,“nodeid”:“e6f99c49-4874-4b30-b15a-1ad5e0cd4028”}
{“type":“Delivery”,“id”:“f5bb290bbff711ee9ff40cc47a84106e”,“sender”:"info@kumo.domain.com,“recipient”:"softcheck+2@acctbnce1.domain.com",“queue”:“amqp”,“site”:“unspecified->amqp@lua:make.amqp”,“size”:1157,“response”:{“code”:200,“enhanced_code”:null,“content”:“NotRequested”,“command”:null},“peer_address”:{“name”:“Lua via make.amqp”,“addr”:“0.0.0.0”},“timestamp”:1706678219,“created”:1706678219,“num_attempts”:0,“bounce_classification”:“Uncategorized”,“egress_pool”:“unspecified”,“egress_source”:“unspecified”,“feedback_report”:null,“meta”:{“received_from”:“10.10.10.2”,“tenant”:“pool-2”,“domain”:“kumo.domain.com”},“headers”:{},“delivery_protocol”:“Lua”,“reception_protocol”:“LogRecord”,“nodeid”:“e6f99c49-4874-4b30-b15a-1ad5e0cd4028”}

{“type":“Reception”,“id”:“ecda21f2bff711ee892e0cc47a84106e”,“sender”:"info@kumo.domain.com,“recipient”:"softcheck+4@acctbnce1.domain.com",“queue”:“null”,“site”:“”,“size”:5860,“response”:{“code”:250,“enhanced_code”:null,“content”:“”,“command”:null},“peer_address”:{“name”:“development.salesjio.com”,“addr”:“10.10.10.2”},“timestamp”:1706678204,“created”:1706678204,“num_attempts”:0,“bounce_classification”:“Uncategorized”,“egress_pool”:null,“egress_source”:null,“feedback_report”:null,“meta”:{“received_from”:“10.10.10.1:47056”},“headers”:{“Subject”:“Test Email”,“X-Tracking-Id”:“ecda21f2bff711ee892e0cc47a84106e”},“delivery_protocol”:null,“reception_protocol”:“ESMTP”,“nodeid”:“e6f99c49-4874-4b30-b15a-1ad5e0cd4028”}

and how to clear all queue ?