# OPS-123 — Every message needs a valid carrier message-class tag

> Every 10DLC A2P message must carry a valid, authorised carrier message class tag.

- **Rule ID:** OPS-123
- **Layer:** Operational (`OPERATIONAL`)
- **Checks:** `outbound message class tag`
- **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:** Wait on an external system or a required interval
- **Required by:** AT&T, Telnyx
- **Applies:** Applies to every 10DLC registration.
- **Canonical URL:** https://ekas.io/rules/10dlc/operational/ops-123/

## Why this rule exists

The class tag is how AT&T decides what throughput the message gets and whether it is carried at all, and it is assigned to the campaign rather than chosen per send — so traffic sent with the wrong tag, or none, fails in a way that looks like a throughput problem rather than a tagging one. It is set by the platform, which is why the sender rarely knows it exists until delivery is unexplainably poor.

## How to fix it

Confirm with your provider which class the campaign was assigned and that outbound traffic carries it. Done when you can state your campaign's message class and it matches what the provider registered.

## Check this yourself

**Can you state your campaign's carrier message class, and does the outbound traffic carry it?**

1. Look the class up in the campaign record at your provider — it is assigned to the campaign, not chosen per send.
2. Confirm with them that outbound traffic carries it.
3. Mismatches are diagnosed there rather than in any error code.

*What wrong looks like:* The wrong tag, or none, fails in a way that looks like a throughput problem rather than a tagging one — and it is set by the platform, so the sender rarely knows it exists until delivery is unexplainably poor.

## Notes

Applied in the sending path. What the user has to do is ask — the class is visible in the campaign record at the provider, and mismatches between the assigned class and the traffic are diagnosed there rather than in any error code.
