Skip to content
man glossary/error-131047

glossary define error-131047

Name

Error 131047 (Re-engagement Message)

Error 131047 means a free-form WhatsApp message was sent more than 24 hours after the customer's last message, when only an approved template is allowed.

Synopsis

Error 131047, Re-engagement message error, 24-hour window error

Section

Graph API & SDKs

Level

practitioner

▍

Reviewed

Drag the clock to the moment 131047 starts

13 / 13

Time since it opened

28h 48m

ClosedFree-form fails with 131047: send a template
Customer asks about a claim
Agent: checking with the team
Agent follow-up (no reset)
Free-form now fails: 131047
0h6h12h18h24hWindow closes
The window opens with the customer's question. The agent's replies don't move it; at 24 hours any free-form send fails with 131047. Drag time, or send a customer reply to restart the clock.

28h 48m in: window closed. Free-form fails with 131047: send a template.

Description

What is error 131047?

Error 131047 (Re-engagement Message) is returned when a business sends a non-template message (text, media, interactive buttons or a list) to a WhatsApp user more than 24 hours after that user last messaged the business. Meta's description is that more than 24 hours have passed since the recipient last replied to the sender number. The 24-hour customer service window has closed, and outside it the only thing a business may send that person is an approved message template.

The window is opened and reset only by the customer. Every inbound message restarts a 24-hour clock from that moment, and the business's own replies, however many, do not move it. A conversation can therefore look active in the inbox, with an agent reply an hour ago, while the window is already closed because the customer last wrote 25 hours ago. Depending on timing, 131047 can come back on the send call or, more often, as a failed entry in the statuses webhook for a WAMID that was accepted, so handle it in both places. The undelivered message is not charged.

It is a message-type error, not a reachability error. Error 131026 (Message Undeliverable) means the recipient can't be reached at all; with 131047 the person is on WhatsApp and will receive a template. The cure is to resend the content as an approved template (a utility template when following up on the customer's own request, such as an order, claim or appointment update) and, once they reply, a new window opens for session messages again.

Key takeaways

  • Error 131047 means you sent a free-form message after the customer's 24-hour customer service window had closed.
  • Only the customer's own messages open or reset the window; your replies never extend it.
  • The fix is an approved template: utility to follow up on the customer's request, marketing only for promotions.
  • Prevent it by storing each contact's last inbound time and switching to a template once it is more than 24 hours old.
  • The person is reachable: unlike 131026, nothing is wrong with the number.

Mechanics

How does error 131047 work?

  1. step 1 — The customer messages you

    An inbound message at, say, 10:00 opens the window until 10:00 the next day. Taps on quick-reply buttons count as inbound messages too.

  2. step 2 — You reply freely

    Free-form text, media and interactive messages are allowed while the window is open. However many you send, they don't extend it.

  3. step 3 — The window closes

    Twenty-four hours after the customer's last message, free-form sending to that person stops.

  4. step 4 — A free-form send fails with 131047

    The message isn't delivered or charged. Your code sees code 131047 on the send response or on the failed status webhook.

  5. step 5 — Resend as a template

    Send an approved template in the right category. If the customer replies, a new 24-hour window opens and free-form messages work again.

Usage

Error 131047 in code

const WINDOW_MS = 24 * 60 * 60 * 1000;
function buildMessage(contact, text) {
const open = Date.now() - contact.lastInboundAt < WINDOW_MS; // customer's last message
if (open) {
return { messaging_product: "whatsapp", to: contact.waId, type: "text", text: { body: text } };
}
// Window closed: free-form would fail with 131047, so send an approved template.
return {
messaging_product: "whatsapp",
to: contact.waId,
type: "template",
template: {
name: "claim_update",
language: { code: "en" },
components: [{ type: "body", parameters: [{ type: "text", text: contact.claimId }] }],
},
};
}

POST the result to https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/messages. Update lastInboundAt from every inbound messages webhook.

Caveats

Common mistakes with error 131047

  • Measuring the window from your last message

    The clock runs from the customer's most recent message, not yours. Store the inbound timestamp from the messages webhook and calculate from that.

  • Scheduling free-form follow-ups

    A bot that sends “Did that solve it?” the next day as plain text will fail whenever the customer went quiet. Schedule follow-ups as templates, or inside the window.

  • Using a marketing template to say sorry for the delay

    Re-opening a support case with a promotional template is the wrong category and the most expensive one. Use a utility template tied to the customer's request.

  • Retrying the same free-form message

    Nothing changes on retry until the customer writes again. Convert the content to a template instead of resending it.

Example

Example: A late answer from a Chennai insurance broker

A customer of a Chennai insurance broker asks on Tuesday at 18:10 whether a claim document has arrived. The agent finds the answer on Wednesday at 19:30 and sends a free-form text, which fails with 131047 because the window closed at 18:10. The inbox now checks last_inbound_at before sending: when it is more than 24 hours old, the composer switches to an approved utility template, claim_update, with the claim number as a variable and a “View details” quick-reply button. The customer taps it, which opens a fresh window for the rest of the conversation.

Properties

Error 131047: key facts and limits

Code and title
131047 · Re-engagement message
Trigger
Free-form send > 24 h after the customer's last message
Who resets the window
Only the customer, by messaging you
Fix
Send an approved template
Billing
The failed message is not charged
In-window replies (India)
₹0.145 each since 1 October 2026

Why it matters

Why does error 131047 matter?

131047 is the error support teams feel most, because it lands exactly when a customer is waiting: the agent finally has the answer, and the send fails. In bots it is usually a design flaw, such as a follow-up scheduled for “tomorrow” sent as plain text. Checking the window before sending, and keeping approved utility templates ready for late replies, turns a failed message into a delivered one. Cost follows the same rule in India since 1 October 2026: service replies inside the window are charged at ₹0.145, and a template outside it is charged by its category, so the window decides the message type rather than whether you pay.

Notes

Best practices for error 131047

  • Show agents a window countdown and switch the composer to templates when it reaches zero.
  • Keep a small set of approved utility templates for late follow-ups: case update, appointment change, document request.
  • Add a quick-reply button to those templates: the customer's tap reopens the window.
  • Sort the support queue by time left in the window, not by arrival time.

Questions

Error 131047 (Re-engagement Message) FAQs

How do I message a customer after 24 hours on WhatsApp?
Send an approved message template. Free-form messages are allowed only within 24 hours of the customer's last message, while a template can be sent at any time to an opted-in customer.
Does my reply reset the 24-hour window?
No. Only a message from the customer restarts the window. Your replies, however many, leave the 24-hour deadline where it was.
Is a message that fails with 131047 charged?
No. It wasn't delivered, and Meta bills delivered messages only. The template you send instead is charged by its category.
What is the difference between error 131047 and 131026?
131047 means the window was closed, so a free-form message wasn't allowed; the customer is reachable with a template. 131026 means WhatsApp couldn't reach that recipient at all.

See InfiQ pricing

* Per-message rates for India, ex-GST: marketing, utility and authentication effective 1 July 2026; service messages ₹0.145 since 1 October 2026 (they were ₹0 until 30 September 2026). Volume commitments earn discounts — final rate is confirmed on your account; applicable GST extra. Rates for other countries differ (see the international rate table on /pricing).

Put Error 131047 (Re-engagement Message) to work

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.