Home/Help Center/Rejection fixes

Templates

Template Rejected: Reasons and Fixes

What Meta's rejection codes actually mean, translated in plain language, and exactly how to fix and resubmit a rejected WhatsApp template in VGraple CRM.

By Chirag Darji · Updated 27 Aug 2026 · 7 min read

On this page
  1. Before you start
  2. Steps
  3. What you will see
  4. Settings and options
  5. Meta's rejection codes, explained
  6. Troubleshooting
  7. Related reading
WhatsApp approved message template library in VGraple CRM

A rejected WhatsApp template shows Meta's own code on its face, and Meta's codes are close to useless on their own. VGraple CRM maps every rejection reason it stores to a plain explanation of the rule that was broken, the field to open, and exactly what to change, right on the template's page.

Rejection fixes

  1. 1Open the rejected template
  2. 2Read the plain-language explanation
  3. 3Edit the flagged field
  4. 4Click "Ask Meta to review again."
  5. 5Wait for the new decision
The steps on this page, in order.

Before you start

  • You need the "Submit templates to Meta" permission to edit and resubmit a rejected template.
  • A rejection does not affect your account's messaging limits or quality rating; only templates that were approved and later paused or disabled do that.
  • Resubmitting a rejected template counts as an edit against its monthly edit budget of roughly 10 accepted edits, though the daily cooldown between edits applies only once a template reaches Approved.

Steps

  1. Open the rejected template. From Templates, either click the row directly, or filter to the Needs attention tab, which shows only templates Meta has rejected, paused or disabled.

Templates screen in VGraple CRM with the gallery, Meta library and sync options

  1. Read the plain-language explanation. Below the status badge, VGraple CRM shows what Meta's raw code actually means, using the table below, rather than just the bare code.

  2. Edit the flagged field. Click Edit and change the specific component named in the explanation (body, header, footer, buttons, category or name). The pre-submission validator re-runs as you edit, so you can confirm the specific issue clears before resubmitting.

  3. Click "Ask Meta to review again." This resubmits the corrected content to Meta under the same template name; Meta's API has no separate appeal endpoint, so a corrected resubmission is what an appeal is in practice. The status changes to Pending while Meta reviews it again.

  4. Wait for the new decision. Authentication templates review fastest since there is no free text to assess; Utility usually clears within minutes to a few hours; Marketing typically takes 4 to 48 hours.

What you will see

The template's status changes from Rejected to Pending the moment you resubmit, and the previous rejection reason clears from the page. If Meta rejects it again, the new reason (which may be the same one or a different one) appears in its place, and the edit is recorded so you can see what changed between attempts.

Settings and options

Setting or fieldWhat it doesDefault
Rejection explanationMeta's raw code mapped to a plain cause and fix, shown on the templateShown automatically whenever status is Rejected
Ask Meta to review againResubmits the template's current content under the same nameAvailable only on Rejected templates that were previously submitted
Monthly edit budgetRoughly 10 accepted edits per template per monthResets on the 1st of each month

Meta's rejection codes, explained

CodeWhat it meansWhat actually caused itHow to fix it
INVALID_FORMATThe template's structure broke a formatting ruleUsually a variable at the very start or end of the body, two variables next to each other, variables numbered out of order, or a newline or tab inside a headerPut words around every variable, number them 1, 2, 3 in the order they appear, and keep the header to a single line
ABUSIVE_CONTENTMeta read this as promotional content in a non-promotional categoryMarketing language, offers, discounts, invitations to buy, inside a template submitted as Utility or Authentication; Meta also flags content it considers misleading or aggressiveEither rewrite the message so it is purely transactional, or resubmit it as Marketing and accept the marketing rate
INCORRECT_CATEGORYThe category does not match the contentMeta reclassifies templates whose wording does not match the category chosen, and charges the higher rateResubmit under the category Meta expects; the validator flags this before submission
INVALID_ATTRIBUTESA component carried a value Meta does not allow thereA footer with a variable in it, more than one variable in a header, a URL button whose domain is dynamic, or a validity window on a category that does not support oneFooters must be static text, headers may hold at most one variable, and only the path of a button URL can vary
TAG_CONTENT_MISMATCHThe sample values do not match the messageMeta reviews a template using the examples supplied; placeholder samples like "value1" or "test" read as an incomplete submissionGive each variable a realistic example, a real name, a real order number, a real date
SCAM_LIKELYThe content resembles a scam patternUrgency, prize or payment language, shortened links, or asking for credentials or one-time codesRemove urgency and reward language, use your own full domain in links, and never ask a recipient for a code or password
PROMOTIONALPromotional content outside the Marketing categoryUtility templates must relate to a transaction the customer has already startedMove it to Marketing, or tie the message to a specific order, booking or account event
INVALID_LANGUAGEThe text does not match the language it was submitted inBody written in one language while the template declares anotherMatch the language selector to the text, or submit this as a translation of the original
DUPLICATEA template like this already existsMeta refuses two templates with the same name, or near-identical content in the same categoryEdit the existing template instead, or change the wording meaningfully
Anything elseMeta rejected this templateAn unrecognised reason string, shown exactly as Meta sent it rather than guessed atCheck that every variable has words around it, the samples are realistic, the category matches the content, and no link is shortened, then edit and resubmit

Troubleshooting

SymptomLikely causeFix
"Only a rejected template can be sent for another review"Ask Meta to review again was attempted on a template that is not currently RejectedWait for the current review to finish, or check the template's actual status first
"This template was never submitted, so submit it instead"A draft template that failed local validation was never actually sent to MetaFix the flagged issue and click Submit rather than Ask Meta to review again
Same rejection reason comes back after resubmittingThe edit did not actually change the flagged content, or a second issue exists that the first rejection did not mentionRe-read the explanation carefully against the current body, header, footer and buttons; run the pre-submission validator before resubmitting
"This template has used all of its edits this month"The monthly edit budget of roughly 10 accepted edits has been usedWait for the allowance to reset on the 1st, or duplicate the template as a new one with a different name
Rejected repeatedly for the same wording under a different categoryThe content itself is genuinely promotional and Meta will not approve it as Utility or Authentication regardless of category chosenRewrite the content to be strictly transactional, or accept the Marketing category and its rate

To catch these issues before Meta ever sees them, see what each validator message means, and for how Meta prices each category differently, see template categories and pricing.

Frequently asked questions

Why does Meta's rejection reason not tell me what to fix?
Meta's own rejection reasons are short codes like INVALID_FORMAT or ABUSIVE_CONTENT with no explanation. VGraple CRM stores the exact reason Meta sends and maps it to what actually went wrong, which field caused it, and what to change, shown directly on the template.
Does a rejection affect my WhatsApp Business Account standing?
No. A rejected template submission does not affect your account's quality rating or messaging limits. Only templates that were approved and later paused or disabled for quality reasons affect account standing.
How do I resubmit a rejected template?
Open the template and click Ask Meta to review again. This edits the template with your corrected content and sends it back to Meta, which is how an appeal works in practice, since Meta's API has no separate appeal endpoint.
Is there a limit on how many times I can resubmit?
Editing a template counts against its monthly edit budget, roughly 10 accepted edits per month, but the 24-hour cooldown between edits only applies once a template is approved. A rejected template can be corrected and resubmitted as often as the monthly budget allows.
My rejection reason does not match anything in the list here. What now?
An unrecognised reason is shown as-is rather than replaced with a guess, along with general advice: check that every variable has words around it, samples are realistic, the category matches the content, and no link is shortened. Contact support if it still is not clear.
What is the difference between INVALID_FORMAT and INVALID_ATTRIBUTES?
INVALID_FORMAT usually means a structural problem in the body itself, a variable at the start or end, two variables adjacent, or numbering out of order. INVALID_ATTRIBUTES usually means a component carries a value Meta does not allow there, like a variable in a footer or a dynamic domain in a button URL.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.