{
  "id": "MSG-018",
  "slug": "msg-018",
  "title": "An MMS campaign must attach at least one sample media file",
  "statement": "A campaign that requests MMS capability must supply at least one sample media file alongside the sample message text.",
  "rationale": "MMS is approved on what the recipient will actually see, and for a picture message that is the picture — a reviewer who is shown only the caption has no way to tell a product photo from something that would fail SHAFT screening on sight. Businesses miss this because the sample text field accepts their submission happily and nothing on the form says the attachment is a separate requirement, so the rejection arrives for a field they never noticed was empty.",
  "layer": "MESSAGE_CONTENT",
  "layerSlug": "message-content",
  "object": "campaign.mms_sample_media",
  "severity": "BLOCKING",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "AWS"
  ],
  "codes": [
    {
      "provider": "AWS",
      "code": "MISSING_CONDITIONAL_FIELD",
      "remediable": true
    }
  ],
  "applicability": {
    "attributes": {
      "mmsEnabled": true
    }
  },
  "applicabilityText": "Applies when `mmsEnabled` is true.",
  "universal": false,
  "remediation": "Attach the actual image or video you will send to the campaign's MMS sample media, one file per sample message that carries media. Done when every MMS sample has a file next to its text, not just a caption describing one.",
  "example": "mms_sample_media: acme-summer-sale.png (image/png, 214 KB) — the same artwork the weekend promotion will send.",
  "pitfalls": [
    "Turning MMS on and leaving the attachments for later is the usual cause: the capability flag and the sample media are separate fields, and the flag is what puts you under this requirement."
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/message-content/msg-018/",
  "markdown": "https://ekas.io/rules/10dlc/message-content/msg-018.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
