Engineering
WhatsApp error 131056 (pair rate limit): how fast you can message one person, and how to retry
What the business-to-user pair rate limit is, the numbers Meta publishes (one message per 6 seconds, bursts of up to 45), why bots and tests trip it, and a 4^X backoff you can copy.
By Broadchat teamPublished 7 min read
In short
WhatsApp error 131056 means your business number sent too many messages to the same WhatsApp user in a short time. Meta's limit is one message every 6 seconds to the same user (about 10 a minute or 600 an hour), with short bursts of up to 45 allowed that borrow from future quota. Wait and retry that one recipient with backoff (Meta suggests 4^X seconds); you can keep messaging other people without waiting.
Key takeaways
- 131056 is about one business number and one recipient; sends to other recipients are not affected.
- Meta's pair rate is 1 message every 6 seconds per user, about 10 per minute or 600 per hour.
- Bursts of up to 45 messages in 6 seconds are allowed, but you must then wait as long as those messages would have taken at the normal rate.
- Meta's recommended retry is 4^X seconds after each failure: 1, 4, 16, 64 seconds and so on.
- Most 131056 errors come from bot loops, duplicate rows in a contact list, or developers testing against one phone.
WhatsApp error 131056 means "too many messages sent from the sender phone number to the same recipient phone number in a short period of time." This is the business-to-user pair rate limit. Meta's fix is to wait and retry if you still need to message that person, and it adds that you can still send to a different phone number without waiting. Your number is not restricted and your quality rating is not touched; one conversation is simply going faster than WhatsApp allows.
The numbers Meta publishes
Meta's platform overview gives the pair rate limit in detail:
- A business phone number can send 1 message every 6 seconds to the same WhatsApp user, which is about 0.17 messages per second, 10 per minute or 600 per hour.
- Exceeding it returns 131056 until you are back within the allowed rate.
- You may send up to 45 messages in a 6-second burst, but this borrows from your future quota.
- After a burst you must wait the time those messages would have taken at the normal rate. Meta's example: a burst of 20 needs about a 2-minute wait before you send more to that user.
So the limit behaves like a bucket per pair (your number plus their number) that refills at one message per 6 seconds. It is separate from your number's throughput and from your portfolio's daily messaging limit.
| Limit | Scope | Error |
|---|---|---|
| Pair rate limit | One business number to one user: 1 message per 6 seconds | 131056 |
| Throughput | One business number to everyone: 80 messages per second by default, inbound and outbound counted | 130429 |
| Account rate limit | API calls on the WhatsApp Business account | 80007 |
| Messaging limit | Unique users reached outside the window per rolling 24 hours, per business portfolio | Sends beyond the tier are refused |
If you hit 130429 rather than 131056, you are sending too fast overall, not too fast to one person. See messaging limit tiers for the daily cap.
What triggers it in practice
Normal human conversations never come close to one message every 6 seconds for long. When 131056 shows up, one of these is usually behind it:
- Two bots talking to each other. Your auto-reply answers another business's auto-reply, which answers yours, and the loop runs until the limit stops it. Add loop protection: no automatic reply to a message that arrived less than a few seconds after your own.
- Long multi-bubble flows. A chatbot that sends a greeting, three images, a PDF and a menu in one go is within the 45-message burst, but if the user taps a button and the bot fires another big batch, the borrowed quota runs out.
- Duplicate rows in a campaign. The same mobile appears three times in an uploaded CSV (often with and without
+91), so a broadcast fires several templates to one person within milliseconds. - Developer testing. Load-testing a webhook or a template by sending hundreds of messages to one test phone is the quickest way to see 131056.
- Retry storms. A failed send that is retried immediately, in a tight loop, keeps hitting the limit and never gets out of it.
The error response
131056 usually comes back synchronously, as the response to your send request. The message text varies; key on the code. Illustrative response:
{
"error": {
"message": "(#131056) (Business Account, Consumer Account) pair rate limit hit",
"type": "OAuthException",
"code": 131056,
"error_data": {
"messaging_product": "whatsapp",
"details": "Too many messages sent from the sender phone number to the same recipient phone number in a short period of time."
},
"fbtrace_id": "AbCdEf123..."
}
}A safe retry with backoff
Meta's guidance for post-burst throttling is to retry a failed send after 4^X seconds, starting with X = 0 and increasing X by one after each failure, until it succeeds. That gives waits of 1, 4, 16, 64 and 256 seconds. Apply it per recipient, so one throttled conversation does not hold up the rest of your queue:
const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
async function sendWithPairBackoff(send: () => Promise<void>, maxTries = 6) {
for (let x = 0; x < maxTries; x++) {
try {
return await send();
} catch (err: any) {
if (err?.code !== 131056) throw err; // only this code is a pair limit
await sleep(Math.pow(4, x) * 1000); // 1s, 4s, 16s, 64s, 256s, 1024s
}
}
throw new Error('Pair rate limit: giving up on this recipient for now');
}In a queue-based system, do the same thing without blocking a worker: put the message back with a notBefore time and let other recipients go first.
A sensible sending pace
- Space bot messages. For long flows, a short delay or typing indicator between bubbles keeps you well inside the burst allowance and reads better on the phone.
- Combine content. One message with an image and caption beats three separate messages. A list message or reply buttons can replace a wall of text bubbles.
- De-duplicate before broadcasting. Normalise every number to the same format (
91plus ten digits), then remove duplicates, so one person receives one template per campaign. - Keep one queue per recipient. If several systems (store notifications, a bot, a CRM) message the same customer, route them through a single sender that knows when it last messaged that person.
A worked example
Arjun builds an order bot for a Surat saree store. When a customer types catalogue, the bot sends 24 product images one by one. The first request works. The customer types more and the bot sends another 24. Around the fortieth message, sends start failing with 131056, because the two batches used up the burst allowance: 48 messages at one per 6 seconds is roughly 4.8 minutes of quota.
He changes the flow to send one catalog or multi-product message instead of individual images, and adds a short delay between the remaining bubbles. The errors stop, and customers can browse in the catalogue view instead of scrolling through dozens of photos.
How Broadchat shows this
Broadchat's campaign engine treats 131056 as a "try later" error for that one recipient: the recipient stays pending and is retried on a later run, up to three attempts, while the campaign carries on with everyone else. Only if the limit keeps failing is the recipient marked as failed. Failed messages show the reason "Too many messages to this number in a short time. Wait and try again." with Meta's code available in Message info. In the chatbot builder, a Send Typing Indicator step between bubbles helps space long sequences.
Other error codes and what to do about them are in the WhatsApp API error codes cheat-sheet; for bot design, see building a WhatsApp chatbot and the plain-English guide to the WhatsApp Business API.
Sources
- WhatsApp error codes — Meta for Developers, checked 30 October 2026
- About the WhatsApp Business Platform (pair rate limits) — Meta for Developers, checked 30 October 2026
- Throughput — 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 131056 mean?
Your business number sent too many messages to the same WhatsApp user in a short time and hit the pair rate limit. Wait and retry that recipient; messages to other people can continue straight away.
How many messages can I send to one WhatsApp user per minute?
Meta's limit is 1 message every 6 seconds to the same user, about 10 a minute or 600 an hour. Bursts of up to 45 messages in 6 seconds are allowed, but they use up future quota.
How long should I wait after a 131056 error?
Meta suggests retrying after 4^X seconds, starting at X = 0 and increasing X after each failure, so 1, 4, 16, 64 seconds and so on. After a large burst, the wait equals the time those messages would have taken at one per 6 seconds.
Does 131056 affect my quality rating or messaging limit?
Meta's error reference describes 131056 as a timing limit between one sender and one recipient and does not tie it to quality or messaging limits. It is different from 131048, which relates to messages being blocked or flagged as spam.
What is the difference between 131056 and 130429?
131056 is the pair limit to a single recipient. 130429 means your number reached its overall Cloud API throughput, 80 messages per second by default, across all recipients.