Meta Rejection Prevention & Troubleshooting
When a template is submitted in SMSPort, Meta uses automated machine learning filters and human reviewers to evaluate the content. If a template violates WhatsApp Business policies, it will be flagged with the red Rejected status badge.
This guide details the most common reasons why Meta rejects templates and provides exact step-by-step solutions to fix them.
The 8 Most Common Rejection Reasons
1. Category Mismatch (Most Frequent)
- What happens: You submit a template under the UTILITY category, but the body text contains promotional or sales language.
- Prohibited words in Utility: "discount", "special offer", "flat 50% off", "free gift", "buy now", "limited period", "sale".
- Why Meta rejects it: Utility messages are charged at a lower fee tier. Meta strictly prevents marketing broadcasts from masquerading as utility notifications.
- The Solution:
- If the template includes ANY promotion, change the Category dropdown to
MARKETING. - If it is a legitimate transactional update (e.g. order tracking or appointment reminder), strip out all sales slogans and focus solely on the customer's transaction details.
- If the template includes ANY promotion, change the Category dropdown to
2. Floating or Vague Variables
- What happens: The template consists almost entirely of dynamic parameters with very little descriptive text.
- Example of Rejected Message:
Hello {{1}}, {{2}} is {{3}}. Please visit {{4}}. - Why Meta rejects it: Reviewers cannot determine what the message is about. Spammers often use floating variables to bypass text filters.
- The Solution: Add complete, descriptive context surrounding every variable:
Hello {{1}}, your appointment with Dr. {{2}} has been confirmed for {{3}}. Please visit our reception at {{4}} 15 minutes before your time slot.
3. Variables at the Beginning or End
- What happens: Starting or ending the message body with a bare variable token.
- Rejected:
{{1}}, your lab report is ready for download.Your lab report is ready. Download it here: {{1}} - The Solution:
- Precede opening variables with a greeting word:
Dear {{1}}, ...orHello {{1}}, .... - Follow closing variables with closing words or punctuation:
...download it here: {{1}} at your convenience.
- Precede opening variables with a greeting word:
4. Consecutive Variables Without Separation
- What happens: Placing two variable tokens directly next to each other:
Your booking for {{1}}{{2}} is confirmed. - Why Meta rejects it: Meta cannot distinguish where one variable ends and the next begins.
- The Solution: Separate variables with clear punctuation or connecting words:
Your booking for {{1}} on {{2}} is confirmed.
5. Using URL Shorteners in CTA Buttons
- What happens: Entering shortener domains such as
bit.ly,tinyurl.com,rb.gy, orgoo.glin a Visit website button. - Why Meta rejects it: URL shorteners hide the real destination URL and are heavily abused by phishing actors.
- The Solution: Always provide the full canonical domain name:
- Rejected:
https://bit.ly/sehat-report - Approved:
https://smsport.in/reports/download
- Rejected:
6. Missing or Blank Sample Values
- What happens: Submitting a template with variables
{{1}}or{{2}}while leaving the Samples Text input fields empty. - Why Meta rejects it: Meta reviewers require realistic samples to verify that the template behaves as intended and does not distribute spam.
- The Solution: Always fill in every sample box with realistic text (e.g.
John Doe,Order #1042,15th August 2026).
7. Language Code Mismatch
- What happens: Selecting
English (en)in the language dropdown, but typing the message body in Hindi (Devanagari script), Urdu, or Arabic. - Why Meta rejects it: The language header does not match the actual character set in the message.
- The Solution: Ensure the selected Template Language Code matches the primary language of the text. For Hindi messages, select
Hindi (hi).
8. Punctuation & Formatting Abuses
- What happens:
- Excessive capitalization:
HUGE DISCOUNT SALE TODAY ONLY!! - Repeated punctuation marks:
Click here to book now!!!!!???? - Excessive emojis: Stacking 5 or more emojis together.
- Excessive capitalization:
- The Solution: Use standard sentence casing, professional punctuation, and limit emojis to 1 or 2 tasteful icons.
Step-by-Step Template Revision Flow
If a template is rejected:
Locate the red Rejected badge in your templates table.
Meta requires a new name. Change order_alert to order_alert_v2.
Switch category to Marketing, surround variables with words, fill samples.
Submit new version; clean templates approve in 1–5 minutes.
- Note the reason for rejection (review the guidelines above).
- Because Meta does not permit changing the category or structure of an existing rejected template under the same name, create a new revision with an incremented suffix (e.g. change
promo_blasttopromo_blast_v2). - Apply the necessary corrections: adjust the category, add descriptive context around variables, and fill in complete sample values.
- Submit the revised template. Meta's automated checks will typically approve clean templates within a few minutes.
Meta Cloud API Error Codes & Troubleshooting Reference
When managing templates or sending WhatsApp messages, Meta Cloud API may return synchronous Graph API errors or asynchronous webhook failure codes. SMSPort automatically decodes the code, details, error_user_msg, and fbtrace_id fields to surface exact operational guidance directly in the console.
Below is the complete reference table of WhatsApp Cloud API error codes and their resolutions:
| Code | Title / Scenario | Root Cause | Operator Resolution |
|---|---|---|---|
| 0 | Auth / Temporary | Temporary Meta service glitch or transient network failure. | Retry the request after a short interval. |
| 1 / 2 | Temporary Service Error | Internal Meta Graph API service issue. | Wait a few moments and retry. If persistent, check Meta Status. |
| 4 | App Rate Limit Hit | Your Meta App has made too many API calls in a short window. | Throttle outbound requests; wait for the rate limit window to reset. |
| 17 | User Request Limit | API calls exceeded per-user or per-WABA quota. | Reduce concurrency and retry after a cool-down period. |
| 100 | Invalid Parameter | Invalid field format, malformed button URL, or bad template structure. | Verify template components, button definitions, and parameter casing. |
| 190 | Access Token Expired | Meta System User Token expired or permissions revoked. | Generate a new permanent System User Token in Meta Business Manager and update credentials. |
| 80007 | Cloud API Rate Limit | Cloud API messages-per-second (MPS) ceiling reached. | Enable rate-limiting queue or request a higher throughput tier from Meta. |
| 130429 | Rate Limit Hit | Account or phone number messaging throughput exceeded. | Throttle message dispatch queue; pause bulk campaigns temporarily. |
| 131000 | Something Went Wrong | Internal WhatsApp Cloud API processing error. | Retry the operation. If persistent, report to Meta Support with the fbtrace_id. |
| 131005 | Access Denied | Permission missing for the requested WABA or phone asset. | Verify system user has full WhatsApp Business Account management permissions. |
| 131008 | Required Parameter Missing | A required field (such as messaging_product or template.name) was omitted. |
Ensure all mandatory fields are provided in the payload. |
| 131009 | Parameter Value Invalid | A value format is illegal (e.g. invalid phone number format or bad component type). | Validate parameter values against the official Meta Cloud API specifications. |
| 131016 | Service Unavailable | WhatsApp Cloud messaging cluster temporarily down. | Retry with exponential backoff. |
| 131021 | Recipient Equals Sender | Outbound message sent to the business's own phone number. | Recipient phone number must be different from the sender phone number. |
| 131026 | Message Undeliverable | Recipient number does not have an active WhatsApp account or has blocked the business. | Verify the destination number is registered on WhatsApp. |
| 131042 | Business Account Ineligible / Payment Issue | Meta WABA has unpaid invoices, unverified credit line, or payment method error. | Open Meta Business Manager > Billing and resolve outstanding balances or payment methods. |
| 131045 | Incorrect Certificate | Encryption certificate mismatch on the sender phone number. | Re-register the phone number certificate in WhatsApp Manager. |
| 131047 | 24-Hour Window Closed | Free-form session message sent after 24 hours of user's last message. | You must use an approved WhatsApp Template message to re-engage the customer. |
| 131051 | Unsupported Message Type | Media or message format not supported by Cloud API. | Check supported formats (JPEG, PNG, MP4, PDF) and file size constraints. |
| 131052 | Media Download Error | Meta could not download media from the provided URL. | Ensure the media URL is publicly accessible with valid HTTPS certificates. |
| 131053 | Media Upload Error | Uploaded media exceeds size limits or corrupted headers. | Optimize media: max 5MB for images, 16MB for video/audio, 100MB for documents. |
| 132000 | Param Count Mismatch | Number of template variables in payload does not match template definition. | Check template body: if template has {{1}} and {{2}}, provide exactly 2 variables. |
| 132001 | Template Does Not Exist | Template name or language was not found in this WABA. | Verify the exact template name and language code (e.g. en_US vs en). |
| 132005 | Hydrated Text Too Long | Message text exceeds 1,024 characters after variables are replaced. | Shorten body copy or provide shorter dynamic variable values. |
| 132012 | Invalid Parameter Format | Named parameters used for positional template, or vice versa. | Match template parameter_format setting (positional vs named). |
| 132015 | Template Paused | Template quality rating dropped to RED; Meta temporarily paused sends. | Check recent campaign spam reports and improve content relevance. |
| 132016 | Template Disabled | Template consistently received high block/report rates and is permanently disabled. | Create a redesigned template with clearer opt-in and unsubscribe options. |
| 133000 | Deregistration Incomplete | Phone number was not cleanly disconnected from previous provider or WhatsApp app. | Complete two-step verification PIN removal or deregister before migration. |
| 133004 | Registration Server Unavailable | Meta registration servers timed out. | Retry phone number registration after 5 minutes. |
| 133005 | Two-Step PIN Mismatch | Entered 6-digit registration PIN does not match the account's existing PIN. | Reset or provide the correct 6-digit PIN in Meta Business Manager. |
| 133010 | Phone Number Not Registered | Attempted to send messages before completing 6-digit PIN registration. | Register the phone number via Cloud API before sending outbound traffic. |
| 2388002 | Invalid Variable Format | Body contains consecutive brackets {{{{1}}}} or non-sequential parameters. |
Fix variable numbering sequentially: {{1}}, {{2}}, {{3}}. |
| 2388040 | Template Already Exists | A template with this exact name and language already exists in this WABA. | Increment name suffix (e.g. order_update_v2) or choose another language. |
| 2388091 | Policy Violation | Template content flagged for violating WhatsApp Commerce or Business Policy. | Remove sensitive content (pharmaceuticals, financial schemes, adult content). |
| 2388293 | Invalid Library Button Inputs | Library template button URL or phone number parameter is malformed. | Ensure button URLs include valid protocols (https://) and parameters match. |
| 2388299 | Missing Library Template Inputs | Library template requires mandatory custom fields that were omitted. | Provide all required parameters expected by the selected library template. |