EDIT: I am sending these messages to numbers in India between 9am to 9pm. Number being in DND registry is probably not an issue because messages do get delivered sometimes.
I am using AWS Cognito for user authentication on my application. Cognito has been set up on ap-south-1
(Mumbai) region which uses AWS SNS to send text messages through ap-southeast-1
(Singapore) region. I have the service limit increased to $10 for Singapore region, so this is not an issue. Majority of my transactional text messages are failing to get delivered. After enabling logs, I am getting these errors:
{
"notification": {
"messageId": "b85b0b1b-fdab-5d76-8361-53e9ba35c023",
"timestamp": "2021-04-15 13:53:34.019"
},
"delivery": {
"phoneCarrier": "NAME OF CARRIER (CHANGED)",
"mnc": 66,
"numberOfMessageParts": 1,
"destination": "+91XXXXXXXXXX",
"priceInUSD": 0.02171,
"smsType": "Transactional",
"mcc": 404,
"providerResponse": "The delivery TTL has expired",
"dwellTimeMs": 149,
"dwellTimeMsUntilDeviceAck": 6310648
},
"status": "FAILURE"
}
Some of them do get delivered but its quite rare. Cognito manages SMS on its own and theres no way for me to set any TTL. Technical support is not covered under basic plan, so I cant get support from Amazon without paying :/