{
  "id": "OPS-033",
  "slug": "ops-033",
  "title": "STOP must never come back as an error",
  "statement": "A consumer who sends STOP must never receive an error message in response.",
  "rationale": "An error reply tells the consumer their opt-out failed, so they try again, then complain — and the carrier sees a subscriber who asked to stop twice and got told the system was broken. It is almost always accidental: STOP arrives on a number whose auto-reply is misconfigured, or outside the hours a handler runs, and the platform returns its generic failure text instead of the confirmation.",
  "layer": "OPERATIONAL",
  "layerSlug": "operational",
  "object": "STOP response handler",
  "severity": "BLOCKING",
  "detectability": [
    "UNDETECTABLE_PRE_SUBMISSION"
  ],
  "failureClass": "TERMINAL_EXTERNAL",
  "authorities": [
    "CTIA",
    "MMA"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Make the opt-out path independent of everything else in the handler: suppress first, then reply with the confirmation, and never let a downstream failure produce an error to the consumer. Done when STOP is answered correctly even with the campaign paused, the API key rotated or the CRM unavailable.",
  "example": "Acme Coffee: you have been unsubscribed and will receive no further messages. Reply HELP for help.",
  "notes": "Not observable from a registration. The user has to test the failure paths themselves — send STOP while the campaign is paused, and again outside business hours — because the correct response in the happy path proves nothing about the ones that matter.",
  "phase": "post",
  "automated": false,
  "attestation": {
    "question": "Is STOP still answered correctly with the campaign paused, the API key rotated, or the CRM unavailable?",
    "howToCheck": [
      "Test the failure paths, not the happy path: send STOP while the campaign is paused, and again outside business hours.",
      "Confirm the handler suppresses first and replies second, so no downstream failure can produce an error to the consumer."
    ],
    "failureLooksLike": "The platform returns its generic failure text. The consumer believes their opt-out failed, tries again, and complains — and the carrier sees somebody who asked to stop twice and was told the system was broken."
  },
  "url": "https://ekas.io/rules/10dlc/operational/ops-033/",
  "markdown": "https://ekas.io/rules/10dlc/operational/ops-033.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
