TL;DR: WhatsApp error 131051 means an unsupported message type was encountered. Meta's error-table
detailsstring is "Unsupported message type." Most teams meet 131051 inbound: when a user sends something the Cloud API can't represent (such as some edited messages, polls, or GIFs), the webhook delivers a message withtype: unsupportedcarrying error 131051. The fix is to handle these gracefully in your inbound handler.
What Error 131051 Means
131051 covers message types the Cloud API does not support. On Meta's error-codes table the details value is:
"Unsupported message type."
In the inbound unsupported messages webhook, Meta's own example (reference page "Updated: Jun 26, 2026") shows the error object verbatim as "code":131051,"title":"Message type unknown","error_data":{"details":"Message type is currently not supported."},"type":"unsupported" — and in that example unsupported.type is edit, confirming edited messages can surface this way. Possible unsupported subtypes Meta lists include button, edit, gif, group_invite, interactive, keep_in_chat, location, media_placeholder, order, pin, poll_creation, poll_update, product, and reaction, among others.
Where You See It
Primarily inbound, via webhook. The notification arrives in entry.changes.value.messages[] with type: unsupported and an errors[] array containing code 131051. Per Meta's messages webhook reference: incoming message errors appear in the messages array and these webhooks have type set to unsupported. It can also appear synchronously if you attempt to send a type the API doesn't support, but the inbound case dominates real-world demand. Note: these webhooks arrive as new inbound events, so the id won't match a message you sent.
Common Causes
- A user edited a message in a way Meta can't deliver as an edit (surfaces as
unsupported.type: edit). On Coexistence numbers, Meta delivers user edits and deletes astype: editandtype: revokemessages instead (see User Edits and Deletes). - The user sent a poll, group invite, product, GIF, or other type the Cloud API can't render.
- Coexistence first contact: a user's first message to a number onboarded from the WhatsApp Business app can arrive as
type: unsupportedwith error 131060 ("This message is currently unavailable."). Meta says this is especially common when users tap a Click-to-WhatsApp ad and send a message straight away. Messages from some unsupported companion devices can also arrive as unsupported. - Sending to another Cloud API number: if you send a message to a number that is itself in use with Cloud API, Meta delivers an unsupported-message webhook to the owner of that recipient number.
- Attempting to send a message
typenot supported by the endpoint.
How to Fix It
- In your inbound handler, branch on
messages[].type. When it equalsunsupported, readerrors[0].code(131051) anderrors[0].error_data.details. - Do not crash or treat it as a normal message. Store a placeholder ("unsupported message received") and continue.
- If you need the content, prompt the user via a supported channel/type to resend.
- If 131051 came from a send attempt, switch to a supported message type (see Meta's Messages → message types reference).
- Distinguish 131051 (unsupported type) from 131060 (message unavailable) since coexistence scenarios can produce either.
How to Prevent It
- Treat
type: unsupportedas a first-class case in your webhook router, not an exception. - Log the
unsupported.typesubtype so you can quantify how often edits, polls, or other unsupported types occur. - For senders, validate message
typeagainst the supported list before calling the API.
Related Errors
- WhatsApp Error 131026 — message undeliverable.
- WhatsApp Error 131008 — missing required parameter (send-side).
- WhatsApp Webhook Override (Error 100)
- See the full error reference
FAQ
Q: Why do I get 131051 webhooks that don't match any message I sent?
A: They're inbound events — a user edited a message or sent an unsupported type. The id is the user's message, not yours.
Q: What's the exact inbound title and details?
A: Meta's example shows title Message type unknown and details Message type is currently not supported.
Q: Do I get a webhook when a user deletes a message?
A: On Coexistence numbers, yes: Meta sends a type: revoke message with revoke.original_message_id when a user deletes a message within two days of sending it. Meta documents this event for Coexistence numbers only.
Q: Is 131051 the same as 131060?
A: Related but distinct: both arrive as type: unsupported, but 131060 is "This message is currently unavailable." (typically a user's first message to a Coexistence number), while 131051 is "Message type unknown."
How Dualhook Helps
Honest answer: 131051 is an inbound-handler matter, and inbound messages webhooks go straight from Meta to your endpoint — Dualhook routes via Meta's override_callback_uri and is not in the message path, so it never reads or stores the content of these messages. Your code must branch on type: unsupported. Dualhook's relevant role is webhook routing and subscription health: it helps ensure your endpoint is correctly subscribed and receiving the messages field so these events actually reach you. See Messaging Webhook, Webhook Events & Notifications, and WhatsApp Coexistence for the companion-device cases.