Engineering
WhatsApp error 131051 (unsupported message type): inbound and outbound causes explained
131051 shows up in two places: incoming webhooks with type unsupported (a customer sent something the API cannot show) and failed sends with an invalid type. How to recognise each, the webhook payload, and what to do.
By Broadchat teamPublished 7 min read
In short
WhatsApp error 131051 means "Unsupported message type". Most people see it on incoming messages: a customer sent something the Cloud API cannot pass to you, such as a poll, an edit or a view-once item, and your webhook receives a message with type "unsupported" and the title "Message type unknown". There is nothing to fix on your side; ask the customer to resend as text, a photo or a document. If 131051 comes back on a message you sent, your request used a type the API does not support: check the type field against Meta's list.
Key takeaways
- Meta's error reference describes 131051 as "Unsupported message type" and asks you to check the supported message types before trying again.
- On incoming messages, 131051 arrives inside a messages webhook with type "unsupported", the title "Message type unknown" and an unsupported.type value such as poll_creation or edit.
- The unsupported webhook also fires when you send through the API to a number that is itself in use with the Cloud API; the recipient number's owner receives it.
- 131060 is a different code on the same webhook: the message is currently unavailable, typically a first message to a WhatsApp Business app (coexistence) number.
- On outbound sends, 131051 points at the request: a misspelt or invented type value, or a type copied from an incoming webhook that can only be received.
WhatsApp error 131051 means "Unsupported message type". Meta's error reference gives that description and one instruction: see the list of supported message types before trying again with a supported type. In practice the code turns up in two different places, and the fix depends on which one you are looking at. If it came in a webhook for a message a customer sent you, WhatsApp is telling you it could not pass that message's content to the API. If it came back on a message you sent, the request asked for a type the Cloud API does not support.
Case 1: an incoming message you cannot read
Meta's unsupported messages webhook reference lists three triggers for a message with type: "unsupported":
- A WhatsApp user sends a message type not supported by the Cloud API.
- You use the API to send a message to a number already in use with the API. The Cloud API then sends the webhook to the owner of the recipient number.
- A WhatsApp user messages a business onboarded with a WhatsApp Business app number for the first time, which is especially common after a Click-to-WhatsApp ad.
The first two carry code 131051. The third carries 131060, "This message is currently unavailable.", which is a coexistence behaviour, not an unsupported type. Here is the webhook for the first case (values illustrative):
{
"object": "whatsapp_business_account",
"entry": [{
"id": "102290129340398",
"changes": [{
"field": "messages",
"value": {
"messaging_product": "whatsapp",
"metadata": { "display_phone_number": "919810012345", "phone_number_id": "106540352242922" },
"contacts": [{ "profile": { "name": "Priya" }, "wa_id": "919876543210" }],
"messages": [{
"from": "919876543210",
"id": "wamid.HBgMOTE5ODc2NTQzMjEwFQIAEhgU...",
"timestamp": "1761810000",
"type": "unsupported",
"unsupported": { "type": "poll_creation" },
"errors": [{
"code": 131051,
"title": "Message type unknown",
"message": "Message type unknown",
"error_data": { "details": "Message type is currently not supported." }
}]
}]
}
}]
}]
}The useful field is unsupported.type. Meta's reference lists these values: button, edit, errors, gif, group_invite, hsm, image, interactive, keep_in_chat, link_preview, list, location, media_placeholder, order, pin, poll_creation, poll_update, product and reaction. Some names, such as image or location, are ordinary types; they appear here when a particular variant of them cannot be passed through. Meta extended this list in February 2026, so treat it as open-ended and do not crash on a value you have not seen.
What to do about an unsupported incoming message
- Nothing is broken. You cannot change what the customer's app sends, and there is no setting that makes these types available.
- Ask for the content another way. If the message matters, reply inside the open customer service window and ask the customer to send it as plain text, a normal photo or a document.
- Still record that they wrote. An unsupported message is a real inbound message from the customer. Store it, show it to the agent and treat the conversation as active.
- Do not let it break your code. Parsers that expect a
text.bodyor a media ID on every message crash ontype: unsupported. Handle unknown types with a default branch. - For case 2, check why another API number is messaging yours. It is often a test setup where one Cloud API number sends to another.
Case 2: a message you sent fails with 131051
When 131051 comes back in the response to your own /messages request, or in a failed status for it, the request asked for a type the API does not accept. Meta lists the service message types you can send in an open window: address, audio, contacts, document, image, interactive (CTA URL buttons, voice call, Flows, lists, location requests and reply buttons), location, sticker, text, video and reaction messages. Outside the window, only template messages are allowed, and those fail with 131047, not 131051.
Common outbound causes:
- A misspelt or invented
type, for example"type": "buttons"or"type": "poll". - A type copied from an incoming webhook, such as
unsupported,button,orderorsystem, which describe received messages and cannot be sent. - Mixing message shapes, for example
"type": "text"with animageobject, or aninteractiveobject whose owntypeis not one Meta supports.
A failing request and its fix (illustrative):
{
"messaging_product": "whatsapp",
"to": "919876543210",
"type": "poll",
"poll": { "question": "Which colour do you prefer?" }
}There is no poll type for business messages. Use interactive reply buttons for up to three choices, or an interactive list for more:
{
"messaging_product": "whatsapp",
"to": "919876543210",
"type": "interactive",
"interactive": {
"type": "button",
"body": { "text": "Which colour should we keep aside for you?" },
"action": {
"buttons": [
{ "type": "reply", "reply": { "id": "indigo", "title": "Indigo" } },
{ "type": "reply", "reply": { "id": "mustard", "title": "Mustard" } },
{ "type": "reply", "reply": { "id": "rust", "title": "Rust" } }
]
}
}
}A worked example
Meera at Rangoli Home asks customers who recently chatted with the brand which cushion colour to restock, and invites them to reply. Some customers answer by creating a poll in the chat. Her developer, Arjun, sees those replies arrive in the webhook as type: unsupported with unsupported.type: poll_creation and code 131051, and the store's old parser was dropping them silently.
He makes two changes. The parser now saves every unsupported message with a short notice so the team can see the customer wrote. And instead of inviting free-form answers, the follow-up message uses three reply buttons, which arrive as normal interactive replies the system can count.
Handling 131051 in code
function toInboxMessage(msg: any) {
switch (msg.type) {
case 'text': return { kind: 'text', text: msg.text.body };
case 'image': return { kind: 'media', mediaId: msg.image.id };
// … other supported types
case 'unsupported': {
const sub = msg.unsupported?.type ?? 'unknown';
const code = msg.errors?.[0]?.code; // 131051 or 131060
return { kind: 'notice', text: `Customer sent a ${sub} message the API cannot show (code ${code}).` };
}
default: return { kind: 'notice', text: `Unhandled message type: ${msg.type}` };
}
}For outbound sends, validate type against an allow-list before calling the API, so a typo fails in your own code with a clear message instead of a 131051 from Meta.
How Broadchat handles unsupported messages
In Broadchat's Inbox, an incoming unsupported message appears as a bubble with a notice that WhatsApp did not deliver the content of this message to the API, and a suggestion to ask the sender to resend it as normal text, instead of an empty bubble or a missing message. Unsupported messages do not trigger chatbot flows and are not counted as campaign replies, so a poll or edit cannot set off an automation by accident. Messages you send from the panel and the chatbot builder are built from supported types, so 131051 on outbound sends normally comes from your own API integrations.
For the rest of the codes, see the WhatsApp API error codes cheat-sheet; for the message types you can design, see interactive messages and reply buttons. If you are new to the platform, start with the plain-English guide to the WhatsApp Business API.
Sources
- WhatsApp error codes — Meta for Developers, checked 30 October 2026
- Unsupported messages webhook reference — Meta for Developers, checked 30 October 2026
- Service messages: message types — Meta for Developers, checked 30 October 2026
- WhatsApp Business Platform changelog — Meta for Developers, checked 30 October 2026
Broadchat team · Product and partner success team
The people who build and support Broadchat, the white-label WhatsApp Business API platform. We write from what we see while onboarding partners and their clients on the official WhatsApp Cloud API, and we check every article against Meta's current documentation.
Last updated:
Frequently asked questions
What does WhatsApp error 131051 mean?
It means "Unsupported message type". On incoming messages, the customer sent something the Cloud API cannot pass to you, such as a poll or an edit. On outgoing messages, your request used a type the API does not support.
Can I see the content of a message that arrived with 131051?
No. The webhook tells you the customer sent a message and which kind (in unsupported.type), but not its content. Ask the customer to resend it as text, a photo or a document if you need it.
What is the difference between 131051 and 131060?
Both arrive on webhooks with type unsupported. 131051 means the message type is not supported by the Cloud API. 131060 means the message is currently unavailable, which typically happens when a user messages a WhatsApp Business app (coexistence) number for the first time.
Can I send polls through the WhatsApp Cloud API?
Polls are not among the message types Meta lists for businesses to send, and a request with an unsupported type fails. Use interactive reply buttons for up to three choices or an interactive list for more options.
Why did my own API number receive an unsupported message?
Meta's webhook reference says that when you use the API to message a number that is itself in use with the API, the Cloud API sends an unsupported message webhook to the owner of the recipient number. It usually comes from a test setup.