Where to read the rejection reason
In Flowella, open Templates and find the rejected template. The rejection reason returned by Meta appears on the template page, usually as a short string likeINVALID_FORMAT or a sentence explaining the issue.
Common rejection reasons
Wrong category
Wrong category
You submitted a Marketing-style message under Utility. Common signs:
- Promotional copy (“Sale ends Friday”, “Get 20% off”)
- An offer or coupon
- Re-engagement messaging
Promotional language in Authentication
Promotional language in Authentication
Authentication templates can contain only the verification code and minimal supporting text. Anything that reads like marketing — branding statements, offers, links to your site — will be rejected. Strip back to the code, an expiry note, and “Do not share this code”.
Sample variable values don't match the body
Sample variable values don't match the body
When you add a variable like
{{1}}, Meta requires a sample value that matches what you’d really send. Common mistakes:- A sample link that’s a generic homepage when the body promises an order tracking page.
- A sample name with special characters that imply unsupported formatting.
- Samples that don’t match the template’s tone (e.g.
Johnfor a first name when the body addresses the recipient as “Customer”).
Spammy text in the body
Spammy text in the body
These get rejected fast:
- Excessive capitalisation (
FREE!!!) - Multiple exclamation marks
- “Click here” without context
- Over-promising language (“guaranteed”, “100% off”)
- Misleading urgency (“Last chance!” without a real deadline)
Variable indexes out of order
Variable indexes out of order
Variables must be sequential starting from
{{1}}. {{1}} then {{3}} will be rejected. Renumber so they go {{1}}, {{2}}, {{3}} in order.Broken or unreachable media header
Broken or unreachable media header
For IMAGE, VIDEO, and DOCUMENT headers, Meta tries to fetch the URL during review. If it 404s, redirects through a login page, or is blocked by your CDN to non-browser user-agents, the template is rejected. Host on stable infrastructure that allows Meta’s crawler.
Buttons that don't comply
Buttons that don't comply
Duplicate template name
Duplicate template name
A WABA cannot have two templates with the same
name and language. If you re-submitted with the same name without removing the old one, the new one will be rejected. Either pick a new name, or delete the old version first.Meta enforces a 30-day cooldown on re-using a name after deletion. If you try to publish a template with the same name as one Meta is currently deleting, Flowella surfaces a cooldown-specific error so you know to either wait or pick a new name.Resubmitting
Still rejected after fixing?
If the same template is rejected twice and you can’t see why, contact support with:
- The template name and language
- The full rejection reason from Meta
- A screenshot of the template body, header, and buttons
Related
Template reference
Categories, headers, button rules, and variable syntax.
Template variables
Sample values, fallbacks, and the rejection traps that come with them.
Templates
Edit and resubmit the rejected template.
Pricing & categories
Why category mismatches matter beyond just rejection.

