Checklist for getting a business texting campaign approved
Twilio rejected mine three times with error 30909 and never said which part was wrong. The problem was the Message Flow field, not the description I kept rewriting.
Read the Message Flow field directly. It's under the end user consent section: "How do end-users opt in to receive messages?"
Make sure that opt-in really exists. Mine described a sign-up form my site didn't have.
Put the opt-in on your site: a phone field and an unchecked consent box.
Add texting language to your privacy page.
Check your form actually saves the consent, so you have a record.
After resubmitting, re-read the saved field from a second screen. Edits don't always stick, and some pages show old cached values.