WhatsApp Error 131008: Required Parameter Is Missing

WhatsApp error 131008 means the request is missing a required parameter — common with flow buttons and dynamic template buttons. Causes and step-by-step fixes.

TL;DR: WhatsApp error 131008 means your API request left out a parameter the endpoint requires. Meta's details string is "The request is missing a required parameter." It is a classic payload-construction mistake — most often a missing flow button component or an empty value for a dynamic button or template variable. Fix it by adding the exact field the endpoint reference requires.

What Error 131008 Means

131008 is a request-validation error. The endpoint expected a field you didn't send. Meta's official details value is:

"The request is missing a required parameter."

The runtime details often names the missing field. Two widely reported variants (community-observed, not the canonical Meta string) are Please specify a flow button component within template['components'] — captured verbatim in a GitHub discussion on the Whatsapp-Business-Cloud-Api-Net library, which appears when sending a flow template without its flow button — and Parameter of type text is missing text value when a body variable is present but empty.

Where You See It

131008 is synchronous. It is returned in the Graph API HTTP response (400 Bad Request) when the request is rejected before acceptance. It does not appear in a statuses[].errors[] status webhook, because no message was created. Some BSP layers surface it as a 403; the underlying Meta condition is a missing required parameter.

Common Causes

  • Sending a flow template without the required button component of sub_type: flow in template.components.
  • A dynamic URL/button template that requires a button parameter, but the parameter array omits it.
  • A template body variable is included but its text value is empty/null because an upstream CRM field wasn't populated.
  • Omitting a required top-level field such as to, type, or messaging_product.
  • Interactive messages missing a required sub-object (e.g. action, button, or list sections).

How to Fix It

  1. Read the error_data.details string — it usually names the missing parameter or component.
  2. Check the endpoint reference for the message/template type you're sending and list every required field. For sending a message these commonly include messaging_product: "whatsapp", to (E.164), type, and the object matching type (e.g. a template object with name and language).
  3. For flow templates, add the flow button component, e.g. a button component with sub_type: "flow" and its required parameters.
  4. For dynamic buttons, include the button parameter object in components with the correct index and sub_type.
  5. Add a guard in your code: if any CRM-sourced variable is empty, skip or substitute before sending so you never transmit an empty required value.
  6. Re-send and confirm a 200 with a message ID.

How to Prevent It

  • Validate payloads against a schema for each message type before calling Meta.
  • Add conditional checks for every personalization variable and alert/skip when a value is missing, rather than sending blanks.
  • Generate flow/button components from the template definition fetched via the Message Template API.

FAQ

Q: I'm sending a flow template and get "Please specify a flow button component" — why? A: A flow template requires a flow button component inside template.components. Add the button component of sub_type: flow with its parameters.

Q: My variable is in the payload but I still get 131008 — why? A: The variable is likely present with an empty value (e.g. Parameter of type text is missing text value). Populate or remove it.

Q: Is 131008 the same as 132000? A: No. 131008 = a required parameter is absent; 132000 = the count of provided values doesn't match the template's variables.

Q: Does 131008 come back through a webhook? A: No, it's synchronous in the API response.

How Dualhook Helps

Honest answer: 131008 is fixed in your sending backend — it's your payload that's missing a field, and Dualhook is not in the message-send path and never touches message content. Dualhook's relevant contribution is making the template/flow structure visible via its whatsapp_business_management access (Templates, Sending Template Messages) so you can see which components (including flow buttons) a template requires before you build the request. Always log error_data.details in your sender — for 131008 it usually names the exact missing parameter.

Browse more docsStart Free Trial