{
  "id": "OPS-138",
  "slug": "ops-138",
  "title": "A blocked number must not be automatically replaced",
  "statement": "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.",
  "rationale": "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.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "blocked-number remediation logic",
  "severity": "BLOCKING",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "HARD_STOP",
  "authorities": [
    "T-Mobile",
    "AT&T",
    "Telnyx"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "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.",
  "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.",
  "catalogIds": [
    "MSG-139"
  ],
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "What does your failover configuration do when a receiving network permanently blocks a number?",
    "howToCheck": [
      "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.",
      "Make a permanent block stop the campaign and page a human instead.",
      "Confirm the investigation starts with the content and the consent behind the blocked traffic, before any number is provisioned."
    ],
    "failureLooksLike": "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."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-138/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-138.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
