> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://myoperator.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Why aren’t my SMS messages delivered to one specific number and how do I fix it?

# Quick answer

Most single-number SMS failures come down to one of five issues:

1. DND or opt-out,
2. DLT template/header mismatch,
3. Wrong sender ID,
4. Bad number format, or
5. Promotional time-band restriction (10:00–21:00 IST). Run the five-step checklist below; you should see status = Delivered in SMS Logs after a resend.

## When should I use this guide?

Use it if one customer isn’t receiving your SMS but other numbers work, and you want to isolate the cause in < 10 minutes.

---

## 1 — Prerequisites

| Item | Where | Notes |
| ---- |
| SMS Logs access | Dashboard → Logs → SMS | Need Status + Reason |
| Template/Header IDs | Manage → SMS Templates | Check DLT mapping |
| Recipient number | E.164 format | e.g., `+91XXXXXXXXXX` |

---

## 2 — Five-step quick diagnosis

1. Open SMS Logs → filter by the recipient number; note Status + Reason.
2. Validate number format → must be E.164 (`+91…`).
3. Check DND/opt-out → if DND, switch to transactional route or WhatsApp.
4. Verify DLT mapping → Header ↔ Template ↔ PE ID; variables exact.
5. Time-band → For promotional SMS, send only 10:00–21:00 IST.

Resend the message; expect delivery within 2–5 minutes.

---

## 3 — Common causes & fixes

| Cause | How to detect | Fix |
| ---- |
| DND/opt-out | SMS Logs → Reason = `DND` | Use transactional route or WhatsApp with consent |
| Template mismatch | Reason = `DLT_REJECTD` | Map approved Header & Template; match variables |
| Sender ID not allowed | Reason = `HEADER_MISMATCH` | Choose permitted sender ID for route/geo |
| Wrong number format | Reason = `UNDELIV` | Resend in `+<country><number>` format |
| Out-of-band time | Reason = `TIME_BAND` | Schedule 10:00–21:00 IST |
| Content filter | Reason = `CONTENT_BLOCK` | Remove short-link / keyword; send again |

---

## 4 — Status/error code guide

| SMS Logs Status | Carrier Code | Meaning | Next action |
| ---- |
| Delivered | `DELIVRD` | Handset confirmed | None |
| Failed | `EXPIRED` | Timed out after retries | Retry later |
| Blocked – DLT | `REJECTD` | Template/header error | Fix DLT mapping |
| Blocked – DND | `DND` | Recipient opted-out | Use transactional route |
| Undelivered | `UNDELIV` | Generic failure | Check number & content |
| Submitted | `SUBMITTED` | Awaiting DLR | Wait a few minutes |

---

## 5 — Workflow

![SMS passes DLT and carrier filters before reaching handset; blocks highlighted.](https://content.api.getguru.com/files/view/8ac6c199-10af-446e-88a3-9aad5358a0d1)

*Alt-text: “SMS passes DLT and carrier filters before reaching handset; blocks highlighted.”*

---

## 6 — Confirm it worked

* Recent SMS shows Delivered in Logs.

* The recipient handset receives the message within 2–5 minutes.

---

## 7 — Troubleshooting matrix

| Symptom | Check | Where | Fix |
| ---- |
| No status / no log | API failure | Integration | Retry API; check key |
| `UNDELIV` only on this number | Format or handset | Logs; phone | Use E.164; ask the user to restart |
| `DND` error | Opt-out | Logs | Switch to transactional template |
| `HEADER_MISMATCH` | Sender ID | SMS Templates | Map correct header |

---

## 8 — Escalate to Support

Send via Help → Chat or email [support@myoperator.com](mailto:support@myoperator.com)

---

Keywords - SMS not delivered, DLT reject, DND block, sender ID mismatch, MyOperator SMS failure