WhatsApp Cloud API · error code

WhatsApp error 2: API Service

RetryableHTTP 503Generic & request errors

Last verified against Meta for Developers - Cloud API error codes

What WhatsApp returns
Temporary due to downtime or due to being overloaded.

What error 2 means

Code 2 is an explicit server-side signal: the Graph API service handling your request is down or overloaded. Your request was understood and was not at fault. This is the one WhatsApp error where the right response is simply to wait and try again, because there is nothing in your payload, credentials, or account that caused it.

It arrives with HTTP 503, which matters because many HTTP clients and proxies treat 503 specially. Some will retry automatically, some will trip a circuit breaker, and some will log it as a client error. Make sure your logging captures the WhatsApp body so you can tell code 2 apart from a 503 emitted by your own gateway.

Code 2 does not mean your message was sent and lost. No message ID is returned, so the send did not happen, and you can safely retry it without producing a duplicate.

Why it happens

  • A platform incident or partial outage on Meta's side.
  • A regional capacity problem during peak traffic.
  • Your own burst of traffic coinciding with platform degradation, which makes the failure look like your fault when it is not.
  • Rarely, an intermediate proxy in your stack returning its own 503 that gets mistaken for Meta's.

How to fix WhatsApp error 2

  1. 1Check the WhatsApp Business Platform status page at metastatus.com before touching code.
  2. 2Retry with exponential backoff starting around one second and doubling, with jitter, for a bounded number of attempts.
  3. 3Confirm the 503 body actually contains "code": 2 from Meta and is not generated by your load balancer.
  4. 4Queue unsent messages durably so they survive the outage and drain automatically once calls succeed again.
  5. 5If the incident is prolonged, pause outbound campaigns rather than letting retries pile up.

How to stop it recurring

Treat the WhatsApp API as a dependency that will occasionally be unavailable. Put sends behind a durable queue with idempotency keys, implement a circuit breaker that opens on consecutive code 2 responses, and subscribe to Meta's status page so an incident is visible to your on-call before customers report it. Avoid designs where a single failed send blocks a user-facing request. The same durable-queue pattern also absorbs 131016 and 133004, the WhatsApp-layer equivalents described in the error-code guide.

Official reference: Meta for Developers - Cloud API error codes. See all WhatsApp error codes or the WhatsApp limits and quotas.

Related codes

Error 2 - quick answers

What does WhatsApp error 2 mean?

Code 2 is an explicit server-side signal: the Graph API service handling your request is down or overloaded. Your request was understood and was not at fault. This is the one WhatsApp error where the right response is simply to wait and try again, because there is nothing in your payload, credentials, or account that caused it.

How do I fix WhatsApp error 2?

1. Check the WhatsApp Business Platform status page at metastatus.com before touching code. 2. Retry with exponential backoff starting around one second and doubling, with jitter, for a bounded number of attempts. 3. Confirm the 503 body actually contains "code": 2 from Meta and is not generated by your load balancer. 4. Queue unsent messages durably so they survive the outage and drain automatically once calls succeed again. 5. If the incident is prolonged, pause outbound…

Can I retry after error 2?

Yes - this is a retryable condition. Back off (start around one second and double on each attempt, with jitter) and watch for a retry-after hint from the platform before resending.

Stop debugging WhatsApp by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.