Rejection Category: CALL_TO_ACTION Explanation: Rejection Code 2121: Invalid Call To Action - The opt-in form must provide instructions on how to find privacy policy. Rejection Code 2117: Invalid Call To Action - The opt-in form must include information on how a customer can receive help. Rejection Code 2116: Invalid Call To Action - The opt-in form has no disclosure that message and data rates will apply to messages sent. Rejection Code 2115: Invalid Call To Action - The opt-in form must mention message frequency. Main issue: Automated CNP review sometimes throws false-negative rejections (2115/2116/2117/2121/7103) even when your form and privacy policy are fully compliant. A common root cause: the automated reviewer is a bot/crawler — it gets blocked by CAPTCHA, bot-detection, or JS-heavy rendering, so it never actually sees your disclosures. It then reports them as missing. Resubmitting the same campaign without changing anything just re-triggers the same automated check — it loops. Proactive fix, in order: 1. Check if your form blocks bots — CAPTCHA, Cloudflare bot protection, or client-side JS rendering of required text can all prevent the automated reviewer from reading your disclosures, even though a human visiting the page sees them fine 2. Re-elect the CNP in TCR (re-select the same carrier as connectivity partner) 3. Re-import the campaign into the carrier's portal right after re-election 4. Open a support ticket immediately, not after waiting for another rejection. State plainly: form/policy already meets all flagged requirements, automated reviewer may be bot-blocked or failing to render JS content, request manual vetting review instead of automated re-check Had this exact pattern with Bandwidth as the CNP — automated check threw 5 false-negative codes, manual review (triggered via re-election + ticket escalation) cleared it within a week with zero changes to the OptInFix form itself.