Why This Rejection Happens
This code means there is a problem with how you handle the "STOP" keyword. Either your sample STOP response is missing mandatory elements (Brand Name + Confirmation), or your description of the opt-out process contradicts the sample messages.
- Sample STOP response: "You are unsubscribed." (Missing Brand Name).
- Sample STOP response: "Goodbye." (Missing confirmation of no future msgs).
- Description says users can reply "QUIT" but system only supports "STOP."
Root Cause Analysis
Primary Triggers
- Incomplete Message: The user needs to know *who* they stopped and *that* it worked. A generic response leaves them guessing.
- Keyword Support: 10DLC requires support for standard keywords (STOP, UNSUBSCRIBE, CANCEL). If your platform only supports one, you must disclose only that one, but ensure it works.
Step-by-Step Remediation
Fix the Sample Message
Edit your "Opt-out Message" field in the TCR portal. It must follow this format: "[Brand Name]: You have been unsubscribed and will receive no further messages."
Check Opt-in Text
Ensure your opt-in description or image also mentions "Reply STOP to cancel." Consistency between the promise and the execution is key.
Pre-Resubmission Checklist
- The sample STOP response includes the Brand Name.
- The sample confirms "no further messages."
Fix It Faster
Get compliant response text.
Stop Means Stop
Confirming the opt-out is critical for TCPA compliance.
What reviewers check for code 30887
Reviewers and carrier test systems send STOP and its equivalents (STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT) to verify that your program honors opt-outs immediately and replies with one confirmation message. That confirmation must identify the brand, state that no further messages will be sent, and contain no marketing. Sample messages and the opt-in flow must also tell subscribers how to opt out.
For code 30887 (Opt-out Workflow Error), the missing piece is the keyword responses. STOP, HELP and their standard equivalents must each return the correct auto-reply. Carriers test the full keyword set during vetting and in production.
Where code 30887 comes from
Code 30887 is one of the brand and campaign registration errors Twilio returns in its 30xxx error range when vetting fails. Other CSPs report the same underlying problem under their own reason codes, so the remediation below applies on any platform. It has a documented fix that usually needs one targeted correction and a resubmission.
Example: opt-out handling for a physical therapy clinic
The example below uses a fictional physical therapy clinic, Motion Works PT, to show the difference between a submission that triggers code 30887 and one that passes.
Rejected:
STOP -> "Unsubscribed" UNSUBSCRIBE -> (no reply) CANCEL -> (no reply) HELP -> (no reply)
Approved:
STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT -> "Motion Works PT: You are unsubscribed and will receive no further messages. Reply START to resubscribe." HELP, INFO -> "Motion Works PT: For help, call (555) 476-2235 or email schedule@motionworkspt.com. Up to 6 msgs/month. Msg & data rates may apply. Reply STOP to opt out."
Fix and verify before resubmitting
- Text STOP, STOPALL, UNSUBSCRIBE, CANCEL, END and QUIT to the number and confirm each returns one confirmation.
- Add the keyword responses where code 30887 flagged it, using the approved wording for Motion Works PT's program shown above.
- Confirm the number is suppressed in every sending system, including third-party tools.
- Check that the confirmation names the brand and contains no links or offers.
- Submit the exact opt-out confirmation text with the campaign.
- Verify that replying START or UNSTOP re-subscribes only when the subscriber asks.
- Resubmit with a note that references code 30887 and quotes the corrected keyword responses.
Sample resubmission note
Many CSPs let you add a note for the reviewer when you resubmit. A short, specific note shows what changed and speeds up the second review. Example for Motion Works PT:
Motion Works PT corrected the deficiency reported as code 30887 (Opt-out Workflow Error). Changes made: text STOP, STOPALL, UNSUBSCRIBE, CANCEL, END and QUIT to the number and confirm each returns one confirmation; add the keyword responses where code 30887 flagged it, using the approved wording for Motion Works PT's program shown above; confirm the number is suppressed in every sending system, including third-party tools. All URLs, keywords and auto-replies were re-tested from an external network before this resubmission, and the campaign text now matches the live opt-in exactly.
Common mistakes that keep code 30887 coming back
- Configuring STOP but not UNSUBSCRIBE, CANCEL, END or QUIT.
- Returning the same generic reply for HELP and STOP.
- Letting a chatbot intercept keywords before the opt-out handler.
- Changing the reply at the CSP while a CRM or chatbot still sends its own response.
Related rejection codes
- Code 611: Keyword Responses Incomplete
- Code 6011: STOP Msg Missing Confirmation Text
- Code 6010: STOP Msg Missing Brand Name
- Code 5108: Opt-in Missing Opt-out Info
- Code 5102: Opt-out Missing Confirmation Text
Frequently asked questions about code 30887
Does code 30887 mean the whole campaign is non-compliant?
No. Code 30887 points to one gap: the keyword responses in your opt-out handling. Fix that gap, check the rest of the submission against the same checklist, and resubmit. Reviewers often list only the first deficiency they find, so a full self-check prevents a second rejection.
Where exactly should the keyword responses appear?
Configure the reply on the opt-out keyword handler at your CSP and paste the same text into the campaign. STOP, HELP and their standard equivalents must each return the correct auto-reply.
Do I fix my live opt-out handling or only the campaign text?
Both. Configure the opt-out auto-reply at your CSP and submit the identical text with the campaign.
Legal Disclaimer: Code 30887 relates to the mechanics of revocation. Ensuring your system honors opt-outs and confirms them is a legal necessity.
© 2025 MyTCRPlus. All rights reserved.