SMS Delivery Reports Explained: Statuses, Failure Reasons and How to Fix Undelivered Messages
You send ten thousand messages for a sale. The dashboard says "submitted: 10,000". A few hours later, customers say they never received anything. Where did the messages go? The answer lives in your delivery reports, a record that most businesses glance at once and then ignore. Understanding it is the fastest way to find out why messages fail and how to fix them.
What an SMS delivery report is
An SMS delivery report, often shortened to DLR, is feedback sent back from the network after you submit a message. It tells you what happened to each message: accepted by the platform, passed to the operator, delivered to the phone or failed along the way. For each message you typically see the recipient number, a message ID, submission time, status and sometimes an error or reason code.
It is important to understand that "submitted" is not "delivered". Submission only means your provider accepted the message. Delivery means the operator confirmed it reached the handset.
A simple example
A basic report row might read like this in plain terms: number ending 4321, message ID assigned by the platform, submitted at 10:00:02, delivered at 10:00:09, status delivered. Another row for a different number might show submitted at 10:00:02, status failed at 10:00:05, with a reason such as invalid number or template mismatch. Reading many rows together shows patterns, such as many failures to one operator or at one time of day.
Common delivery statuses
Submitted or accepted. Your platform has taken the message and queued it. Nothing is confirmed yet.
Sent. The message has been handed to the operator network.
Delivered. The handset received the message and the network confirmed it.
Failed or undelivered. The message did not reach the phone. The reason code explains why.
Rejected. The platform or operator refused the message, often for content, sender ID or template problems.
Expired. The network tried for the validity period but could not deliver, for example because the phone was off or out of coverage.
Pending or unknown. No final status has arrived yet. Some networks return delayed or missing reports.
Names and codes differ by provider, so always read your provider's own list.
Why messages fail in India
Several causes are common. Under Indian telecom rules, businesses must register their sender IDs and message templates on the DLT platform, and the content you send must match an approved template. A message with changed wording, missing variables or a wrong sender ID can be blocked. Invalid or inactive numbers fail immediately. Phones that are switched off or out of coverage may lead to expiry. Numbers registered on do-not-disturb lists can block promotional messages, while transactional and service messages follow different rules. Operator congestion during peak periods such as festivals can delay messages. Content that looks like spam or contains unapproved links may also be filtered.
How to read your reports step by step
Start with the totals: submitted, delivered, failed and pending. Calculate the delivery rate by dividing delivered messages by submitted messages. Then sort failures by reason, operator and circle. If failures are concentrated in one reason, such as template mismatch, fix that single cause and you may recover most of your volume. If failures cluster in one operator, raise a ticket with your provider with sample message IDs and timestamps.
Compare reports across campaigns. A sudden drop after changing sender ID, template or link suggests the change caused the problem. Check delivery times too. If messages arrive minutes late, time-sensitive OTPs may expire before customers see them.
Steps to improve delivery
Clean your list before every campaign by removing invalid, duplicated and long-inactive numbers. Use only approved templates and keep variables within the permitted format. Use a registered, recognisable sender ID. Keep content clear, avoid excessive capital letters and suspicious shortened links, and use branded or approved URLs where required. Send promotional messages in permitted time windows and avoid sudden huge bursts if your provider recommends throttling. Keep OTP and transactional traffic separate from promotions so critical messages are not delayed behind a marketing queue. Always test with a small batch on different operators before a large send.
Using delivery reports for business decisions
Reports are not only for troubleshooting. They guide planning. Low delivery for a customer segment may mean outdated data. High failures on a particular day suggest timing issues. Combine delivery data with link clicks, conversions and unsubscribes to measure campaign value. Share a monthly summary with sales and marketing teams so list quality and compliance remain a priority.
Report limitations
A delivered status confirms handset receipt, not that the person read the message. Some reports may arrive late or not at all, depending on the operator route. Treat delivery data as a strong indicator, not a perfect truth, and cross-check with customer feedback when numbers look unusual.
Frequently asked questions
What is a good delivery rate?
It depends on list quality and route, but consistently low rates signal data, template or sender ID issues worth investigating.
Why does a report show pending for hours?
The operator may not have returned a final status, or the phone may be unreachable until it reconnects.
Can I resend failed messages?
Yes, once the cause is fixed. Do not blindly resend to invalid numbers.
Get more messages delivered
OM Enterprises provides detailed delivery reports, DLT support and route monitoring so your SMS campaigns reach customers. Talk to our bulk SMS team.

