Message Delivery Errors

Each error type is mapped to its corresponding code, as returned by the system, to diagnose delivery failures.

Error TypeError CodeWorth RetryingTest number for simulated error in Postman Test environment only**

delivery_error

recipient_invalid

No

65 1111 1111

recipient_unavailable

Yes

65 1111 2222

content_invalid

No

65 1111 3333

routing_error

Maybe*

65 1111 4444

message_expired

Maybe*

65 1111 5555

delivery_unknown_error

Maybe*

65 1111 9999

server_error

server_unknown_error

Maybe*

65 2222 2222

Important information *Not all messages are suitable for retries, especially OTPs, as the recipient's next steps will be to request for another OTP.

**The test numbers are only available in the Postman test environment, as they are used to simulate different error messages. Do not use test numbers in the Postman production environment.

Detailed explanation of error codes for specific troubleshooting steps

recipient_invalid error code


The recipient’s mobile number is not recognised by the network operator and cannot receive your SMS.

Common causes for recipient_invalid:

  1. Deactivated or invalid number

    The recipient’s number might have been deactivated or is no longer in use.

  2. Incorrect number format

    The mobile number may be incorrectly formatted when entering the number (e.g. wrong country code, missing digits).

Steps to troubleshoot:

  1. Verify the mobile number.

  2. Ensure your database is kept up to date by regularly validating the mobile numbers.

recipient_unavailable error code


The recipient’s device is not currently connected to the mobile network.

Common causes for recipient_unavailable:

  1. Out of network coverage

    The recipient might be in an area with poor or no mobile network coverage, or there may be an ongoing issue with the telco operator.

  2. SIM card issue

    The recipient’s SIM card may be malfunctioning or damaged, causing the device to fail to connect to the network.

  3. Device issue

    There might be a technical issue with the handset, preventing it from connecting to the network.

Steps to troubleshoot:

  1. Attempt to resend the message after some time.

  2. Instruct the recipient to check if their SIM card is functioning properly. They can try inserting the SIM or testing it in another device to rule out SIM issues.

  3. Ask the recipient to restart their device. If the problem persists, the recipient may need to reset their network settings, or consult their mobile operator for troubleshooting.

content_invalid error code


There is an issue with the message content, such as prohibited content or incorrect encoding.

Common causes for content_invalid:

  1. Prohibited or sensitive content

    The message contains inappropriate keywords or phrases that are banned by the service provider.

  2. Special characters or unsupported encoding

    Certain characters or symbols in the message (e.g., non-GSM characters, emojis) are not supported by the declared message encoding.

Steps to troubleshoot:

  1. Recreate a new campaign after modifying your content. You can refer here for the list of characters which Postman does not support.

  2. Identify non-GSM characters using Postman's message segment calculator tool.

routing_error error code


There is a failure in routing the messages to the recipient’s mobile network.

Common causes for routing_error:

  1. Mobile number is not released by the regulator

    The mobile number is not approved for messaging by the country's telecom regulator.

  2. Networking routing configuration issue

    There is an issue with the mobile operator's routing infrastructure.

Steps to troubleshoot:

  1. Confirm the mobile number is active and valid in the recipient's country.

message_expired error code (release on 30 September 2024)


When a message from Postman is not delivered to the recipient handset within the 48-hour timeframe set by the SMS aggregators. This means that although the message was dispatched, it was not successfully delivered within the expected period, and its delivery status remains unknown.

Common cause for message_expired:

  1. Delivery time frame exceeded

    Due to network delays, temporary issues with the aggregator's infrastructure may have caused delays in the message delivery.

Steps to troubleshoot:

  1. It is unknown if the recipient has successfully received the message. You can consider resending critical messages.

delivery_unknown_error error code


The exact cause of the failure is not identifiable due to unknown configurations or issues on the recipient’s end. This means that while the message was sent successfully from Postman, the system cannot determine why it was not delivered.

Common causes for delivery_unknown_error:

  1. Recipient's device configuration

    Unknown settings or configuration (e.g., third party mobile application, expired prepaid card) on the recipient's devices could affect the message delivery.

  2. International restrictions

    Certain countries or regions may have restrictions on SMS delivery to specific number ranges, or certain carries may block messages from external providers.

Steps to troubleshoot:

  1. Contact the recipient to confirm if their device is active, properly configured, and connected to the network. If the problem persists, the recipient may need to reset their network settings, or consult their mobile operator for troubleshooting.

  2. For international restrictions issue, raise it to btn-ops@open.gov.sg and provide us with the message_ID of the affected messages.

server_unknown_error error code


This occurs when there is an internal error, typically due to an unknown issue with either Postman or the aggregator's server.

Common cause for server_unknown_error:

  1. Temporary server outages

    One of the servers may experience temporary connectivity issues

Steps to troubleshoot:

  1. For server issues, raise it to btn-ops@open.gov.sg immediately and provide us with the message_ID of the affected messages.

  2. Once we have fixed the issue with the server, you may resend the message after some time.

Last updated