TTL_EXPIRED in aws pinpoint: How to handle it, how to override the TTL?

0

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?
1 Answer
1
Accepted Answer

Hello,

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.
AWS
SUPPORT ENGINEER
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions