Streamline your business

Enable voice-calls at scale. Integrate Dexatel’s Voice API and start engaging instantly.

Home
Separator
Blog
Separator

Text Message Errors: SMS Error Codes and How to Fix Them

Dikran Seferian
Dikran SeferianContent Writer

Published: May 26, 2023

Updated: Oct 28, 2026

Smartphone with two text message bubbles, one marked with an amber clock while it’s retried, under a network path with one bypassed node

A text message error means an SMS could not be sent or did not reach the recipient. The cause might be temporary, such as a phone that is out of coverage, or lasting, such as an invalid number. Some messages can be retried. Others need a different fix.

This guide explains SMS error codes, delivery statuses, and the most common reasons business text messages fail. It also covers when to retry, when to correct a contact, and how to troubleshoot a message that fails on your own phone.
Three layers of SMS error codes: API request, delivery status and network cause

What Is a Text Message Error?

A text message error tells you that something stopped an SMS from being sent or delivered. On a phone, you might see “Not Delivered” or “Message failed to send.” When a business sends SMS through an API, it may receive an HTTP error or a delivery status such as FAILED, REJECTED, or EXPIRED.

The next step depends on the cause. A temporary network problem may clear up on its own. A wrong number, a blocked sender, or a missing registration usually needs to be fixed before you send again.


Where Do SMS Error Codes Come From?

SMS errors can appear at three layers: your API request, the delivery status, and the mobile network. Each layer is a different system, so the same number does not necessarily mean the same thing in each one.

LayerWhat it tells youExampleWhere the information comes from
API requestThe SMS request was not accepted or processed correctlyHTTP 400 Bad Request, 401 Unauthorized, 429 Too Many RequestsHTTP status codes and your messaging provider’s API
Delivery statusWhat happened after a message was submittedFAILED, REJECTED, EXPIREDYour provider, based on operator updates
Network causeWhy a mobile network rejected or could not complete an SMS transferUnassigned number, network congestion, memory full3GPP network standards

Start with API errors. They usually point to something in your request, your authentication, or your sending rate. For example, the Dexatel API error guide lists HTTP 429 for accounts that send too many requests in a given period.

Then check delivery reports. A delivery report (DLR) gives you an update about a message after it was submitted. It shows whether the SMS was delivered, failed, rejected, or expired.

Dexatel’s delivery statuses do not include a separate failure-reason code. This means you will not see a carrier error number for a failed message. Use the status, the destination, and your sender setup together to work out the likely cause.


SMS Delivery Statuses Explained

An SMS delivery status tells you what happened to a message after you sent it through a messaging provider. It helps you decide whether a message arrived, failed, or needs investigation.

The SMPP messaging protocol uses delivery receipts with fields such as stat for message status and err for an error code. Many gateways return shortened statuses such as DELIVRD or UNDELIV, and the exact err values depend on the SMS gateway or message center (SMPP delivery receipt reference). Dexatel’s delivery webhook uses its own set of statuses:

StatusWhat it meansWhat to do
DELIVEREDThe network reports that the SMS reached its destinationNo retry needed. This does not confirm that the person read the message.
FAILEDThe SMS could not be deliveredCheck the number, the sender, and the destination’s line type
REJECTEDThe message was stopped before it was delivered, either by Dexatel or by the upstream carrier (see below)Check the cause based on who rejected it (see below)
EXPIREDThe message was not delivered before its allowed delivery time endedCheck whether the phone was off or out of coverage before deciding whether to retry

The delivery webhook also includes mccmnc, the recipient’s mobile country and network codes. These can help you see whether failures are concentrated in a particular country or operator.

What REJECTED means. A REJECTED message was stopped at one of two points, and only one of them applies to any given message:

  • Dexatel rejected it. Dexatel refused the message before submitting it further. The message never reached the carrier, so fix the request, sender setup, or content before sending again.
  • The upstream carrier rejected it. Dexatel approved and dispatched the message, and the carrier refused it afterward. Check the destination and carrier conditions, and see the network causes below.

Important: A FAILED or REJECTED status does not, by itself, tell you exactly what went wrong. Use the steps in “How to Fix SMS Delivery Failures” to narrow down the cause.

Common SMS Network Causes

Some network errors come from the 3GPP RP-Cause standard, which mobile networks use to describe problems with SMS transfers. Dexatel does not display these codes in its delivery statuses. The table below explains what the codes mean so you can recognize the causes when your carrier or support team mentions them. See 3GPP TS 24.011, Annex E for the full descriptions.

RP-CauseMeaningWhat may have happenedRetry or fix?
1Unassigned numberThe destination number is not assignedCorrect or remove the number. Do not keep retrying.
8Operator-determined barringThe network has barred the SMS transactionCheck the restriction with the operator before retrying
10Call barredSMS toward that destination is barredDo not retry until the restriction is resolved
21Short message transfer rejectedThe receiving system refused the SMSFind the reason before retrying
22Memory capacity exceededThe recipient’s device cannot store another messageRetry later if appropriate
27Destination out of serviceThe destination cannot currently be reachedRetry after the issue clears
28Unidentified subscriberThe network cannot identify the subscriberCheck the number and subscriber status
38Network out of orderThe network has a faultRetry later
41Temporary failureA temporary network problem stopped deliveryRetry with a delay
42CongestionThe network is overloadedRetry with a delay

The main rule is simple: retry temporary failures, but fix the cause of permanent failures first. Repeatedly sending to invalid numbers wastes time and money. Never retry an SMS to someone who has opted out.

Why Do Business Text Messages Fail?

Business SMS messages can fail because of an invalid number, an opt-out, carrier filtering, sender registration, a phone that cannot be reached, or a temporary network problem. Finding the cause helps you avoid sending the same failed message again.

CauseWhy it happensWhat to check
Invalid or inactive numberThe number is wrong or no longer in serviceCheck and correct the recipient number
Landline or non-SMS numberMany landlines do not receive SMSCheck the line type and use another channel if needed
Opted out or blockedThe recipient withdrew consent or blocked the senderKeep suppression lists updated. Do not resend to opted-out contacts.
Carrier filteringThe operator may block messages that break its content rules or look like spamCheck message content, links, and compliance requirements
Unregistered senderUS business traffic on standard 10-digit numbers generally needs A2P 10DLC registrationRegister the brand and campaign before sending
Wrong sender typeA country may not support your sender ID or may require registrationCheck local sender rules
Phone off or out of coverageThe recipient’s device cannot be reachedCheck the delivery status and retry later if appropriate
Network congestion or faultThe operator cannot complete delivery right nowRetry with a delay if the error is temporary

Carrier filtering can affect many messages at once. Mobile networks may block spam-like content, restricted categories, excessive capitals, and certain shortened links. These checks also consider consent and opt-out language. The CTIA Messaging Principles and Best Practices allow carriers to filter or block unwanted traffic, and they recommend standard STOP wording and link shorteners dedicated to one sender. Dexatel’s SMS compliance guide also advises avoiding SHAFT content (sex, hate, alcohol, firearms, and tobacco).

For sender registration, see the 10DLC overview and Dexatel’s A2P 10DLC guide. Dexatel is listed as a Campaign Service Provider by The Campaign Registry.

How to Fix SMS Delivery Failures

To fix an SMS delivery failure, first check whether the message was rejected by Dexatel or by the upstream carrier, or whether it failed or expired after it was dispatched. Then identify the likely cause, retry only when it makes sense, and correct problems that will not resolve on their own.
Decision flow for retrying temporary SMS errors and removing permanent ones

  1. Collect delivery results. Use delivery webhooks or dashboard logs to see what happened to each message. Do not assume a submitted message was delivered.
  2. Sort failures by status. For REJECTED messages, check whether Dexatel or the carrier stopped them. Dexatel-side rejections usually come from the request, the sender setup, or the content, so review those first. Carrier-side rejections mean the message was dispatched, so check the destination and carrier conditions.
  3. Group failures by country and operator. If failures cluster on one operator, investigate possible filtering or routing issues. If they occur across many networks, check your contact list, sender setup, and content.
  4. Retry temporary problems with a delay. A busy network or an unreachable phone may accept the message later. Avoid repeated immediate retries.
  5. Correct permanent problems. Fix or remove numbers that are invalid or no longer assigned.
  6. Check numbers before sending. Use a phone validator or carrier lookup to check the number’s validity, line type, and carrier information. A lookup result does not guarantee that a specific SMS will be delivered.
  7. Honor opt-outs. Keep suppression lists in sync across your systems. Do not retry messages after a recipient has opted out.
  8. Review sender and content rules. Register senders when required, and correct content that may trigger carrier filtering.
  9. Plan a fallback for important messages. For one-time passwords, Dexatel Verify can move to the next channel in a configured verification chain when the current channel fails.

Text Message Failed to Send on Your Phone

If a text fails to send on your own phone, check the mobile connection, the messaging settings, and the recipient’s number first. These problems are different from the delivery reports that businesses receive through an SMS API.

  • iPhone: If you see “Not Delivered” beside a message, check your network connection, tap the red exclamation point, and select “Try Again.” If iMessage fails, you may have the option to “Send as Text Message.” Regular SMS normally needs cellular service, although Wi-Fi Calling can help in supported setups (Apple Support).
  • Android: Update Google Messages, check that it is the default SMS app, and verify the SIM, signal, plan balance, airplane mode, and available storage (Google Messages Help).
  • Either phone: Check the full number, including the country code when needed, and make sure the contact is not blocked.

If messages still fail, contact your mobile operator.

Track and Reduce SMS Errors With Dexatel

Dexatel helps businesses investigate SMS failures through delivery webhooks, SMS analytics, and phone-number lookup tools. The delivery webhook provides each message’s status and the recipient’s network codes.

In the Analytics section, you can use filters to break down failed messages by status, country, or operator. This shows where failures cluster, so you can decide whether to fix contact data, sender setup, or routing. The SMS analytics feature provides delivery information in charts and logs. In Dexatel Engage, every message gets a delivery report, and one dashboard shows delivery rates, clicks, and spend by channel. Lookup tools help check phone numbers and carrier details before sending. For more information, explore Dexatel SMS or book a demo.

FAQ

What are SMS error codes?

SMS error codes are numbers that explain why a text message was not delivered. They come from your SMS provider’s API, from operator delivery receipts, or from network cause values defined by 3GPP, so the same problem can carry different numbers at different providers. Dexatel’s delivery statuses do not include a separate failure-reason code.

What does “message failed to send” mean?

It means your phone or app could not hand the message to the network, or the network could not deliver it. Common causes are weak signal, wrong messaging settings, an incorrect number, or a recipient whose phone cannot receive SMS.

Should I retry a failed SMS?

Retry only temporary errors, such as congestion, a temporary network failure, or a phone that is off or full. Do not retry permanent errors, such as an unassigned number or an opted-out recipient, because the message will fail again.

What does an expired SMS mean?

An expired SMS is a message the network could not deliver before its validity period ended. It usually means the phone was switched off or out of coverage for too long.

Can you send an SMS to a landline?

Most landlines cannot receive SMS, so messages to them fail. Check the line type with a number lookup, and use a voice call for landline contacts.

Why do carriers block business text messages?

Carriers block messages that look like spam or break their rules, such as content on SHAFT topics, shortened links, missing opt-out language, or traffic from an unregistered sender.