# MSG-FIELD-SIMILARITY — Description, message flow, and samples must not be the same text

> The description, message flow, and sample messages must each contain distinct content rather than repeated boilerplate.

- **Rule ID:** MSG-FIELD-SIMILARITY
- **Layer:** Message content (`MESSAGE_CONTENT`)
- **Checks:** `campaign.description + campaign.message_flow + campaign.sample[]`
- **Severity:** HIGH — Rejected by at least one carrier or provider, and a common cause of failure at the rest.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** AI judgement over the submitted form
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** Twilio, TCR
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/message-content/msg-field-similarity/

## Why this rule exists

These three fields answer different questions — what the campaign is, how consent is collected, and what gets sent. Pasting the same paragraph into all three leaves two of those questions unanswered and is explicitly coded as a rejection reason.

## How to fix it

Write each field to its own purpose: the description explains the program, the message flow explains consent collection, and the samples show real messages.

## Example of a compliant value

```text
Description: what the program sends and to whom. Message flow: "Customers opt in at acmecoffee.com/signup by ticking…". Samples: the actual texts.
```

## Provider rejection codes

| Provider | Code | Resubmission allowed |
| --- | --- | --- |
| Twilio (gen2) | `30911` | yes |
