TTL_EXPIRED in aws pinpoint: How to handle it, how to override the TTL?
Occasionally we get TTL_EXPIRED errors in sms delivery notice. This number is significantly higher in certain days. As per AWS Support team this could happen if devices are unreachable.
- what's the recommended way to deal with these kinds of errors?
- what's the default ttl? Can we override it? (Preferrably based on sender) - If yes, is it a configuration change or an API level change?
- is the ttl at aws end? or is it at the downstream telcos?
Thank you for reaching out to us.
Please allow me to explain a brief overview of SNS- SMS service flow:
Flow : Amazon SNS -> Aggregator -> Mobile Carrier -> Mobile Endpoint
When an SMS is sent from Pinpoint, Pinpoint forwards the messages to the aggregators, which in turn forwards it to the Phone carrier. The phone carrier is then responsible for sending the message to the mobile endpoint (end user device). The provider response in logs is given by the phone carrier for that particular message. So issues inside certain mobile carriers can sometimes cause SMS failures to certain destination phone numbers. After we hand off the message, each carrier has their own TTL timer which starts ticking and will try to publish the message until it doesn't expire. For any reasons if the carrier is unable to send messages to the endpoint within the TTL, it will error out with "The delivery TTL has expired" provider response.
These messages failed because the TTL (Time To Live) for the message expired before the mobile carrier could deliver it to the device endpoint within the TTL. Possible reasons could be:
The device is unable to receive the messages. For example, the network unavailability/out of coverage or roaming or device doesn’t have space left to receive new messages
The device is offline (switched off)
Please find below answers to the questions you have asked
what's the recommended way to deal with these kinds of errors?
To mitigate the issue:
- Ensure that the end-user device is not offline (switched off).
- The device is able to receive the messages. For example, the network availability/in of coverage or roaming.
- The device does have space left to receive new messages.
what's the default ttl? Can we override it? (Preferrably based on sender) - If yes, is it a configuration change or an API level change? is the ttl at aws end? or is it at the downstream telcos?
- TTL is carrier specific and is not managed by AWS we cannot change TTL value for SMS.
Usage of alphanumeric sender ID for SMS messaging in Russiaasked 11 days ago
TTL_EXPIRED in aws pinpoint: How to handle it, how to override the TTL?Accepted Answerasked 3 months ago
One phone number for Amazon Connect AND PinpointAccepted Answerasked 6 months ago
Pinpoint SMS message sent but not deliveredAccepted Answerasked 6 months ago
Pinpoint not receiving SMSasked 6 months ago
AWS Pinpoint/SNS: Two-way SMS unsubscribe/resubscribe implementationAccepted Answerasked 2 years ago
How do we turn off SMPP delivery message when using Pinpoint and SNS for 2 way SMS?asked 4 months ago
Pinpoint SMS template doesn't work when overriding default attribute valuesAccepted Answerasked 5 months ago
How to build an event-driven Journey in Pinpointasked 2 months ago
Pinpoint not receiving SMSasked 4 months ago