Messaging Reports and Debugging Tools
Two pages drive SMS observability in Blocx:
- Messaging → Reports — aggregated trends and breakdowns.
- Messaging → Debug — single-message timeline.
For email-specific equivalents, see Email History and Reports.
Messaging Reports
Open Messaging → Reports to see SMS performance:
- Send volume over time — split by country, campaign, number, or messaging profile.
- Delivery rate — delivered / sent, with industry benchmarks overlaid.
- End-to-end latency — p50, p95, p99 broken down by carrier.
- Top error codes — sorted by volume, click to drill in.
- Inbound volume — replies, opt-outs, keyword matches.
- Per-number and per-campaign breakdowns — useful for identifying a single problematic number.
Filter at the top by:
- Time range
- Messaging profile
- 10DLC campaign
- Sending number
- Destination country
- Tag (any custom labels you set at send time)
Hover any chart for exact counts; click a bar or line to drill into the underlying messages.
Debug
Messaging → Debug is single-message inspection. Paste a message ID — from a msg_... returned by the API, a webhook event, or a row in a report — and you'll see:
- The original request — exact JSON you sent us.
- Routing decisions — chosen sending number, applied campaign, queueing latency, pool decisions.
- Carrier handoff — exact API call to the carrier and the response code and body.
- Delivery receipts — carrier-reported status, error code, and free text.
- Compliance actions — opt-out matched, suppressed recipient, content-filter trigger, throughput throttling.
If a message didn't deliver, this is the first place to look.
Common error codes
| Code | Meaning | Recommended action |
|---|---|---|
| 30003 | Unreachable destination | Phone off or out of coverage. Retry later. |
| 30004 | Message blocked | Carrier blocked the recipient or content. Investigate at Compliance Inbox. |
| 30005 | Unknown destination | Number doesn't exist. Validate recipient lists. |
| 30006 | Landline or unreachable carrier | Number can't receive SMS. Skip in future. |
| 30007 | Carrier filtered | Spam-like content or sender. Review campaign content and opt-in flow. |
| 30008 | Carrier-side unknown | Retry with exponential backoff. |
| 21610 | Recipient has opted out | Stop sending to this number. |
| 21611 | Source number not provisioned | Number not active on campaign — check Numbers → Manage. |
Full reference is linked from the debug page next to each error.
Exporting
Both pages support CSV export of any filtered view. Use it for:
- Incident reviews after a deliverability drop
- Cost-allocation reports per tag (when tags map to internal teams)
- Reconciling app-side delivery counts against carrier-confirmed delivery
Larger exports run in the background and are emailed when ready.
Status page
For platform-wide incidents (carrier outages, our own degradations), watch otterblocx.statuspage.io. Subscribe to email or SMS alerts there.