The brand registration went through, the campaign sat in review for a couple of weeks, and then its status flipped to failed with an error code and one sentence of explanation. A 10DLC campaign rejected at this stage is not a verdict on the business; most of the rejection codes describe a submission that did not prove consent, identity or purpose clearly enough, and that kind of submission can be edited and sent back.

Brand and campaign are two registrations, and they fail for different reasons

The Campaign Registry, usually shortened to TCR, holds two kinds of record. Its own overview defines the Brand as the company or entity the end customer believes to be sending the message, and a Campaign as simply the use case of your messaging, which defines the type of content you will be sending. Twilio's registration guide adds that a Brand may have more than one Campaign.

Brands fail on identity. Twilio's guide says the business_name must be the exact legal business name as registered with the EIN, taken from the CP 575 EIN Confirmation Letter, and warns that newly issued EINs can take 30 to 90 days to propagate across validation systems. It also lists the conditions under which TCR rejects a website_url: the site is not reachable, it points to a parked domain or a domain listed for sale, it requires a login, or it redirects to a different brand or an unrelated domain.

Campaigns fail on the story they tell: who sends, who receives, why, and how recipients agreed.

Note also that TCR's overview states it does not review, approve, or reject campaigns; that is done by the providers, connectivity partners and direct connect aggregators in the chain. Twilio's error 30902 is worded accordingly: a DCA2 rejected this campaign registration request. Twilio's other error pages say resubmitting triggers a fresh review by TCR. Either way, the path runs through the provider that filed the campaign. TCR puts campaign review times at 1 to 4 weeks; Twilio says standard campaigns can take up to several weeks.

What the rejection codes actually mean

Twilio publishes a page for each campaign rejection code, and the common ones map to specific gaps:

  • 30924, non-compliant consent language. The opt-in has to state the type of messages, the message frequency, that message and data rates may apply, and how to opt out.
  • 30917, incomplete opt-in workflow. Every opt-in method selected needs its own description of where consent happens, what the consumer sees, and what action confirms it. Evidence behind a login cannot be reviewed.
  • 30927, opt-in evidence for a different company. The company name, website domain, samples and confirmation message must all point to the same company as the brand.
  • 30902, a general third-party rejection. Listed causes include a vague description, samples that do not match the use case or brand, and a website that is invalid, under construction or inconsistent with the business.
  • 30880, unknown error. A failed campaign can include more than one error, so look for a more specific code.

Not every rejection is fixable by rewriting. Twilio's troubleshooting guide separates remediable reasons from ones such as content violations (30883), which cover references to alcohol, firearms, tobacco products or marijuana, and notes that by default a single EIN can be used in a maximum of 50 different Brands, with campaigns beyond that limit rejected even if otherwise valid. For those, the remedy is an appeal through support or a materially different campaign.

What carriers and CTIA expect the paperwork to prove

Twilio's consent error page measures opt-in language against TCPA and CTIA compliance requirements, and TCR points businesses to the CTIA Messaging Principles and Best Practices for compliance questions. Three parts of that document do most of the work.

The call to action. CTIA says it should make consumers aware of the program description, the numbers messages will come from, the identity of the organization, clear language about opt-in and fees, and terms such as how to opt out and the privacy policy. Opt-in details should not be obscured in terms and conditions.

The confirmation. For recurring programs, CTIA says the sender should send an opt-in confirmation message before any additional messaging, naming the program, giving customer care contact information or HELP instructions, explaining how to opt out, disclosing that messages are recurring and their frequency, and stating any fees.

The opt-out. CTIA says standardized STOP wording should be used, that normal-language requests such as stop, end, unsubscribe, cancel or quit should also be honored, and that the sender should send one final opt-out confirmation message per campaign and then nothing further.

Twilio adds the privacy specifics. Privacy policies need a statement of non-sharing for mobile numbers, the message frequency, and a message and data rates may apply disclosure, and must be publicly accessible without a login. Terms pages must be hosted on the same domain as the business website.

Worked example: a dental office's appointment reminders

Consider a four-dentist family practice that wants to text appointment reminders to existing patients. The office manager filed a campaign whose description read Appointment reminders for our dental patients. The message flow read Patients opt in when they give us their cell number. The two samples were Reminder: you have an appointment tomorrow and You have been unsubscribed. The website's privacy policy said nothing about text messages.

It failed on the description, the consent language and the samples, and each was earned. Nothing says who sends or why, the flow shows no disclosure, the samples do not name the brand, and the second sample is an opt-out confirmation, the same mistake Twilio's troubleshooting guide uses as its example.

The rewritten description

Twilio's guide says the description should include who the sender is, who the recipients are, and why messages are being sent. The rewrite: Maple Street Family Dental sends appointment reminders, confirmation requests and rescheduling notices to existing patients who have agreed to receive text messages on the patient intake form or the appointment request form on our website. Messages relate only to scheduled visits and contain no promotions.

The last sentence matters. CTIA's consent table treats appointment reminders as informational messages that need express consent, but notes that adding a call to action such as a coupon code may place a message in the promotional category, which calls for express written consent. Declaring no promotions keeps the campaign, the samples and the real traffic aligned.

The rewritten opt-in flow

The practice collects consent two ways, and Twilio requires that every method be listed, so the message_flow describes both. Path one is the website appointment request form, with an unchecked box directly beside the phone field. Path two is the paper intake form at the front desk, with the same wording beside a signature line; since a reviewer cannot see paper, a scan of the blank form is hosted on a public page on the practice's domain and linked in the flow, which ends with links to the privacy policy and terms.

The consent wording on both covers the four elements from Twilio's 30924 page: I agree to receive recurring appointment reminder text messages from Maple Street Family Dental. Message frequency varies. Message and data rates may apply. Reply HELP for help or STOP to cancel. Terms and privacy: [practice domain]. The privacy policy gains a section stating that mobile numbers are not shared with third parties, with the same frequency and rates language.

The rewritten sample messages

Twilio requires two to five samples, each naming the brand, with square brackets for variable content. The rewrite uses three:

  • Maple Street Family Dental: you are enrolled in appointment reminder texts. Message frequency varies. Msg and data rates may apply. Reply HELP for help, STOP to cancel.
  • Maple Street Family Dental: Hi [first name], this is a reminder of your appointment on [date] at [time]. Reply C to confirm. Reply STOP to opt out.
  • Maple Street Family Dental: your appointment on [date] needs to be rescheduled. Please call the office or reply here and we will find a new time. Reply STOP to opt out.

The first sample doubles as the confirmation CTIA expects. No sample contains a phone number, so has_embedded_phone stays false. If the office later wants the main number in its reminders, Twilio's guide says to include such numbers in the samples so they can be verified, so the campaign is edited before the traffic changes. Links work the same way.

Fixing and resubmitting without starting over

Twilio's error pages agree: edit the rejected campaign rather than deleting and recreating it. In the Console that is Messaging > Regulatory Compliance > Campaigns, the failed campaign, then Edit Campaign; clicking Update kicks off a new vetting process. Twilio states there is no limit on resubmissions and that a vetting fee is assessed only once per campaign, which is the financial reason not to delete. Through the API, campaign_status reads IN_PROGRESS during vetting, then VERIFIED or FAILED.

There are two exceptions. The edit screen cannot change the use case itself, so a campaign filed under the wrong use case is deleted and recreated. And when the fault lies with the brand, Twilio notes that a brand cannot be edited if it has a campaign associated with it, so the campaign is deleted, the brand is fixed and resubmitted, and a new campaign is registered.

Where this goes wrong

The opt-in lives behind a login. A patient portal checkbox is invisible to a reviewer; Twilio's fix is a public URL with hosted screenshots of the consent screen.

The consent is a terms checkbox. Twilio's failing example is a box reading only that the person agrees to the Terms of Service. General terms acceptance is not messaging consent, and the consent language belongs at the checkbox, not in a linked document.

The booking form belongs to someone else. If the practice takes requests through a scheduling vendor's hosted page, the opt-in evidence may show another company's name or domain, which is the 30927 pattern, and terms pages that redirect to another domain are rejected. Host the consent page and its screenshots on the practice's own domain.

Methods are selected but not described. Ticking keyword opt-in without supplying the keyword flow and confirmation is a 30917 cause. Deselect what is not used.

A shortened link appears in a sample. Twilio says only a dedicated, branded short domain belonging to the business is acceptable.

The fix goes to the wrong record. Rewriting the campaign will not cure a legal name that does not match the CP 575. Read every error and check the brand before editing anything.

The traffic drifts after approval. A reminder program that starts appending a whitening special is no longer the informational campaign that was approved, and lacks the consent promotional content needs.

The decision rule

If every error on the failed campaign is about the description, the opt-in flow, the consent language or the samples, edit the campaign in place and resubmit, as many times as it takes. If the use case itself is wrong, or any error points at the brand's name, tax ID or website, delete the campaign, fix the brand, and register a new campaign. If the code is a content or high-risk category, stop rewriting and either appeal through the provider or change what the program sends.