Skip to content

How do I troubleshoot mobile text message (SMS) failures in Amazon SNS?

4 minute read
0

My mobile text messages (SMS messages) failed to send through Amazon Simple Notification Service (Amazon SNS).

Resolution

Activate and view CloudWatch Logs

Follow these steps to activate and view Amazon CloudWatch logs for SMS messages. For more information, see How do I access Amazon SNS topic delivery logs for SMS messages?

Check whether you exceeded your monthly SMS spending quota

Complete the following steps:

  1. Review your delivery status logs for failed SMS message deliveries value "status": "FAILURE".

  2. Check the failed SMS delivery logs for the following value: "providerResponse": "No Quota left for account". If you see this value in the failed SMS delivery logs, then you exceeded your monthly SMS spending quota.
    Example failed SMS delivery log message:

    {    "notification": {
            "messageId": "efgh9a7-c68f-abcd-bdbe-21ada245e18f",
            "timestamp": "2020-10-21 16:32:10.981"
        },
        "delivery": {
            "destination": "+1234567890",
            "smsType": "Transactional",
            "providerResponse": "No quota left for account",
            "dwellTimeMs": 145
        },
        "status": "FAILURE"
    }
    

    Note: You can also check the SMSMonthToDateSpentUSD metric in your CloudWatch metrics to confirm whether you exceeded your monthly SMS spending quota.

  3. If you exceeded your monthly SMS spending quota, then request a spending quota increase for SMS messages in Amazon SNS.
    Important: After you receive an SMS spending quota increase confirmation, you must also adjust the spending quota for your AWS account on the Amazon SNS console. If you don't update your SMS settings on the Amazon SNS console, then your SMS spend limit doesn't increase.

AWS SDK SMS messages

If you use an AWS SDK to send SMS messages, then complete the following steps to check whether you exceeded your maximum message price:

  1. Review your delivery status logs for failed SMS message deliveries value "status": "FAILURE".
  2. If you found a failure status in the delivery status logs, then review the SMS delivery failure reasons.
  3. Check the failed SMS delivery logs for the following value: "providerResponse": "delivery would exceed maxprice". If you see this value in the failed SMS delivery logs, then you exceeded the price limit that's configured in your AWS.SNS.SMS.MaxPrice message attribute.
    Note: You can also check the PublishSize metric in your CloudWatch metrics to confirm if you exceeded your message size limit. If Amazon SNS determines that sending the message incurs a cost that exceeds the maximum price that you set, then it doesn't send the message.
  4. If you exceeded your maximum message price limit, then either increase your AWS.SNS.SMS.MaxPrice value or reduce the size of your SMS message. For more information, see Publishing SMS messages to a mobile phone using Amazon SNS.

Confirm that your account has approval to send SMS messages

Complete the following steps:

  1. Review your delivery status logs for failed SMS message deliveries value "status": "FAILURE".
  2. If you found a failure status in the delivery status logs, then review the SMS delivery failure reasons.
  3. Check the failed SMS delivery logs for the following value: "providerResponse": "Your account requires additional review prior to being able to send SMS messages". This value means that the Amazon SNS team hasn't approved your account to send SMS messages.
    Note: To prevent abuse, Amazon SNS requires customers to have their spending limit and use case approved before sending SMS messages.
  4. If your account doesn't have approval to send SMS messages, then open a Service limit increase case in the AWS Support Center.
    Important: Make sure that you choose Service limit increase for your case type, not Account and billing or Technical.

Confirm that your Region supports your origination identities

Make sure that the country or AWS Region that you send messages to supports the origination identities that you use.

For example, to send messages to US destination phone numbers, you must have a supported US origination number (TFN/10DLC/ShortCode) in your Region. Or, to send messages to CA destination phone numbers, you must have a supported CA origination number (LongCode/ShortCode) in your Region.

For more information, see Supported countries and regions for SMS messaging with AWS End User Messaging SMS.