# OPS-138 — A blocked number must not be automatically replaced

> A number blocked by a receiving network must never be auto-replaced with a fresh one, and a permanent block code must be treated as a programme defect rather than a replacement trigger.

- **Rule ID:** OPS-138
- **Layer:** Operational (`OPERATIONAL`)
- **Checks:** `blocked-number remediation logic`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Falls due after approval, once you are live and sending
- **How it is detected:** Not knowable before submission — reported with its deadline
- **Fix type:** Hard stop — not remediable, resubmission will not help
- **Required by:** T-Mobile, AT&T, Telnyx
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/operational/ops-138/

## Why this rule exists

Automatically swapping a blocked originator is filter-evasion assistance, and it is named as such — the carrier blocked the number to stop the traffic, and replacing it defeats a control the network applied deliberately. It is almost always built with good intentions, as failover: delivery dropped, so the system routed around it, exactly as it would around a hardware fault.

## How to fix it

Make a permanent block stop the campaign and page a human rather than trigger failover. Investigate the content and the consent behind the traffic that earned the block before any number is provisioned.

## Check this yourself

**What does your failover configuration do when a receiving network permanently blocks a number?**

1. Read the failover rules in your platform and your runbook. Look specifically for a rule that treats a block the way it treats an outage — it is a sensible-looking line and it is the defect.
2. Make a permanent block stop the campaign and page a human instead.
3. Confirm the investigation starts with the content and the consent behind the blocked traffic, before any number is provisioned.

*What wrong looks like:* Delivery dropped, so the system routed around it — exactly as it would around a hardware fault. The carrier blocked that number deliberately, and swapping it is named as filter-evasion assistance.

## Notes

Absorbs MSG-139, which states the same rule and adds the dynamic-routing case. Logic inside the sending platform. What the user has to audit is their own failover configuration — a rule that treats a block like an outage is the specific thing to look for, and it is a sensible-looking line in a runbook.
