# WhatsApp error 132069: Flow throttled — cause and fix

URL: https://wa.genuka.com/en/docs/errors/132069
Language: English

> WhatsApp error 132069: the Flow is throttled to 10 sends per hour because its endpoint is unhealthy. How to fix the endpoint and get back to Published.

WhatsApp error 132069 means your Flow is in the "throttled" state: WhatsApp detected that its
endpoint is unhealthy, through latency, errors or downtime, and limits sending to 10 messages per
hour. The cause is on your server. Fix the endpoint; the Flow goes back to published on its own
once the metrics recover.

## What does error 132069 mean?

> "Flow is in throttled state and 10 messages using this flow were already sent in the last hour."
> — [Meta, Cloud API error codes](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes#other-errors)

Its neighbouring code describes the next stage:

> "Flow is in blocked state."
> — Meta, code 132068

For both, Meta's instruction is the same: correct the Flow. These states only apply to Flows that
call your endpoint for their data
([Meta, Flow health and monitoring](https://developers.facebook.com/documentation/business-messaging/whatsapp/flows/guides/healthmonitoring)).

| Flow state         | Restriction                   | Effect for users                           |
| ------------------ | ----------------------------- | ------------------------------------------ |
| Published          | None                          | None                                       |
| Throttled (132069) | 10 new Flow messages per hour | Flows already received still open and work |
| Blocked (132068)   | No sending at all             | Flows already sent no longer open          |

## When does error 132069 happen?

WhatsApp monitors three metrics of a Flow's endpoint: the **error rate** (endpoint or client
side), the **latency** and the **availability**. When one of them deteriorates significantly, the
Flow first moves to *Throttled*, then to *Blocked* if things get worse. Meta sends several alert
webhooks before it gets there.

Typical causes:

* an endpoint that takes several seconds to answer, because it queries a slow database or API;
* an endpoint that does not answer health check requests;
* a deployment that breaks decryption or returns errors in a row;
* a server that cannot be reached from the internet.

### Where do you see it in Genuka WA?

| Channel                          | What you get                                                                                               |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `POST /api/v1/messages` response | `400`, `"error": "send_template"`, `meta.code: 132069` (or `132068`)                                       |
| `GET /api/v1/flows/{id}`         | `data.status` read from Meta on every call: `published`, `throttled` or `blocked`, with `validationErrors` |
| `flow.status_changed` webhook    | The `flows` field events Meta sends, forwarded to your endpoint                                            |

Genuka WA classifies 132xxx codes as `template`: sending the same message again changes nothing
until the endpoint is fixed.

## How do I fix error 132069?

1. **Read the alerts you received** for this Flow: they say which of the three metrics degraded.
2. **For a latency alert**, speed up the endpoint. Meta recommends answering in under one second:
   cache, preload, move slow calls off the request path.
3. **For an availability alert**, check that the endpoint is continuously reachable from the internet
   and that it answers health check requests. The library's `createFlowEndpoint` handler answers them
   automatically: see [Flows in the library](https://wa.genuka.com/sdk/flows).
4. **For an error rate alert**, go through the errors listed in the alert with Meta's Flows error
   codes reference.
5. **Wait for the automatic recovery.** WhatsApp detects the fix and moves the Flow from *Blocked* to
   *Throttled*, then from *Throttled* to *Published*. Follow it with `GET /api/v1/flows/{id}`.

**curl**

```bash
curl https://wa.genuka.com/api/v1/flows/flw_1 \
  -H "Authorization: Bearer $GENUKA_WA_API_KEY"
# { "data": { "id": "flw_1", "name": "book_appointment", "status": "throttled", ... }, "validationErrors": [] }
```

**Node.js**

```ts
/** Only send a Flow when it is published; otherwise use another path. */
export async function flowIsSendable(flowId: string): Promise<boolean> {
  const response = await fetch(`https://wa.genuka.com/api/v1/flows/${flowId}`, {
    headers: { Authorization: `Bearer ${process.env.GENUKA_WA_API_KEY}` },
  });
  const { data } = await response.json();
  // "throttled": 10 sends per hour at most. "blocked": none.
  return data.status === "published";
}
```

## How do I prevent error 132069?

* **Measure your endpoint's latency** under real load, not only in development.
* **Monitor the endpoint like a production service**: availability, error rate, response time,
  with an alert that fires before WhatsApp reacts.
* **Receive the `flow.status_changed` events** to know when a Flow changes state without waiting
  for a send to fail.
* **Plan a fallback path** (web link, regular conversation) for when the Flow is not `published`.

## Related error codes

* [131047](https://wa.genuka.com/en/docs/errors/131047): a Flow sent as an interactive message outside the 24-hour
  window is refused; you then need a template with a Flow button.
* [132001](https://wa.genuka.com/en/docs/errors/132001): the template carrying the Flow button cannot be found in that
  language, or is not approved.

## FAQ

### Can my users still fill in a throttled Flow?

Yes. In the *Throttled* state, Flows already received open and work; only sending new messages is
limited to 10 per hour. In the *Blocked* state, however, even Flows already sent no longer open.

### Are Flows without an endpoint affected?

No. Meta states that health monitoring only applies to Flows that use data from your endpoint.

### Do I need to republish the Flow after fixing it?

No. WhatsApp automatically detects that the endpoint has recovered and moves the Flow back up,
from *Blocked* to *Throttled* and then to *Published*.

## Sources

* [Meta — Error codes](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes)
* [Meta — Flow health and monitoring](https://developers.facebook.com/documentation/business-messaging/whatsapp/flows/guides/healthmonitoring)
