🇪🇸 Español 🇬🇧 English 🇧🇷 Português
Guides

Why Meta Rejects Your WhatsApp Templates (Errors 131009 and 190) and How to Fix It

A practical guide to WhatsApp template rejection: decode error codes 131009 and 190 and get your business messages flowing again fast.

July 11, 2026

Few things kill campaign momentum like preparing a broadcast, hitting send, and getting hit with a WhatsApp template rejection that explains nothing. Meta returns a numeric code, your platform surfaces a raw error, and the conversation stalls. The good news: almost every rejection falls into a handful of known causes, and the two codes you will see most (131009 and 190) have concrete fixes. This guide breaks them down and gives you a method to get back online quickly.

Rejection vs. send failure: know which one you have

A rejection can happen at two very different moments, and mixing them up wastes hours:

  • At template approval: Meta reviews content before you can use it. If the copy violates policy, has malformed variables, or looks like spam, it lands in Rejected status.
  • At message send: the template is already approved, but the API call fails. This is where codes like 131009 and 190 appear.

A 190 is never fixed by editing template text, and a content rejection is never fixed by refreshing a token. Diagnose the moment first.

Error 131009: parameter value is not valid

Error 131009 ("Parameter value is not valid") is the biggest headache because the message is generic and the real cause is usually hidden. The most common triggers:

  1. Duplicate IDs or titles in buttons and lists. Meta requires Reply Button titles, List row IDs, and catalog SKUs to be unique within the same message. Two buttons with the same title, or two rows sharing an ID, throw a 131009 without saying which.
  2. Variable count mismatch. If the template has {{1}} {{2}} {{3}} and you pass two parameters, validation fails.
  3. Malformed recipient number. The wa_id must be in international format. Prefixing with "+" and parsing without assuming a default country avoids errors across Mexico, Colombia, or Argentina.
  4. Components out of order (header, body, buttons) or a dynamic URL button missing its parameter.

The shortcut: when a 131009 appears, check button and row uniqueness first, then the variable count. That covers roughly 80% of cases.

Error 190: the access token expired

Error 190 (OAuthException) is easier to diagnose: if every send suddenly fails with this code, it is not your template, it is your channel's access token that expired. System User tokens can expire from credential rotation, permission changes in your Meta app, or manual revocation.

The fix is not the template, it is reconnecting the channel:

  • Re-run the WhatsApp Embedded Signup to regenerate the token.
  • Confirm your Business app's System User holds the whatsapp_business_messaging and whatsapp_business_management permissions.
  • If you use long-lived tokens, schedule a rotation before the expiry date instead of waiting for the failure.

Why content gets rejected at approval

When Meta marks a template Rejected during review, it is usually because of:

  • Wrong category. A promotional message submitted as Utility gets rejected. Pick Marketing, Utility, or Authentication based on true intent.
  • Variables at the very start or end with no surrounding text, or two variables back to back.
  • Spammy or high-pressure language ("BUY NOW," excessive caps or emojis).
  • Placeholders submitted without sample values.

How to fix and resubmit

A workflow that holds up:

  1. Use the code to decide whether it is an approval or a send failure.
  2. For 131009, fix uniqueness and variables, then send a test to a single number before the mass campaign.
  3. For 190, reconnect the channel and retry.
  4. For content rejection, adjust category and copy, then resubmit for review (usually minutes to 24 hours).

A well-built platform spares you most of this. In Omnifox the inbox validates button uniqueness and variable counts before touching the API, and flags when a channel needs reconnecting due to an expired token, so you never discover a 190 mid-campaign.

Preventing future rejections

  • Keep a library of already-approved templates and reuse them.
  • Name buttons and rows with a unique scheme (for example, a per-section prefix).
  • Test every new template with a real send before scaling.
  • Watch your number's quality rating; a low score raises rejection rates.

Wrapping up

WhatsApp template rejection stops being a mystery once you separate the moment of failure and read the right code: 131009 is almost always uniqueness or variables, 190 is an expired token. With a test-before-you-scale habit and a platform that validates on your behalf, blocks become rare. If you want an inbox that catches these errors before Meta does, try Omnifox and send your templates with a safety net.

Comentarios (0)

Todavía no hay comentarios. Sé el primero en compartir tu opinión.

Dejá un comentario

Tu email nunca se publica. Los comentarios se moderan antes de aparecer.

Soporta markdown. El HTML se elimina.