Meta API Error Reference

Common Meta Graph and WhatsApp Cloud API error codes with recommended actions.

Error Object Format

Most API failures return an error object with this shape:

{
  "error": {
    "message": "<ERROR_MESSAGE>",
    "type": "<ERROR_TYPE>",
    "code": 190,
    "error_subcode": 1234567,
    "error_data": {
      "details": "<OPTIONAL_DETAILS>"
    },
    "fbtrace_id": "<TRACE_ID>"
  }
}

Always log: error.code, error_subcode, error.message, error_data.details, and fbtrace_id.

Authentication and Permission Errors

HTTPCodeMeaningRecommended action
401190Access token invalid/expiredRefresh/reconnect token
40310App permission deniedVerify app permissions and review status
403200Business asset permission missingReassign Business Portfolio permissions

Request Validation Errors

HTTPCodeMeaningRecommended action
400100Invalid parameterValidate payload schema
400131008Required parameter missingAdd missing field
400131051Unsupported message typeFix message type and object structure
400132000Template parameter mismatchAlign variables with approved template
400132001Template not found/unavailableUse exact approved template name + language

Delivery and Policy Errors

HTTPCodeMeaningRecommended action
400470Outside service windowSend approved template first
400131026Message undeliverableValidate destination and retry when appropriate
429131056Pair rate limit reachedSlow down per-recipient pace
429130429Throughput limit hitQueue/throttle traffic and retry with backoff

Platform and Throttling Errors

HTTPCodeMeaningRecommended action
4294Too many API callsBack off and retry with jitter
5002Temporary service issueRetry with exponential backoff
503131016Service unavailableRetry with backoff and circuit-breaker guard

Error Handling Strategy

Retryable:

  • 429 rate limits
  • 500 / 503 server-side failures
  • Network timeout/connectivity errors

Usually non-retryable without payload/access changes:

  • 100 validation errors
  • 10/200 permission errors
  • 132000/132001 template errors
  • 470 policy window violations

Suggested Retry Policy

  1. Use exponential backoff with jitter.
  2. Cap retry attempts for transient classes (3–6 attempts).
  3. Send non-retryable errors directly to a dead-letter/ops queue.
  4. Include idempotency keys in sender jobs to avoid duplicate sends.
  5. Always store fbtrace_id for support escalation.

Dualhook surfaces webhook-side delivery errors and management alerts in monitoring views. Message-send API failures happen in your backend caller and should be logged there with full Graph error metadata.

Related

  • Messaging OverviewCore messaging endpoint, text messages, formatting, delivery statuses, and common errors.
  • Messaging WebhookReal-time webhook events for inbound messages, delivery statuses, and errors.
Browse more docsGet started with Dualhook