Use this file to discover all available pages before exploring further.
Chirp uses error codes to help you programmatically handle specific error conditions. Not all errors include a code — only errors that benefit from programmatic branching. For errors without a code, use type and message to understand the issue.For a full description of the error format, see Errors.
The message could not be delivered to the recipient.
Common Causes:
The recipient has blocked your business number
The recipient’s phone is turned off or unreachable
The recipient is not available on WhatsApp
Meta’s ecosystem protection chose not to deliver the message
How to Fix:
Verify the recipient’s phone number is correct and active
Check if the recipient has opted out of receiving messages
Try sending to a different number to verify your setup works
Related Provider Codes:
Provider
Code
Meaning
Meta
131026
Unable to deliver message
Meta
131049
Ecosystem protection
Meta
130472
Experiment participant
Example Response:
message_undeliverable response
{ "error": { "type": "provider_error", "code": "message_undeliverable", "message": "Unable to deliver message. The recipient may have blocked your number or is not available on WhatsApp.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#message_undeliverable", "provider": { "source": "meta", "code": 131026, "message": "Unable to deliver message" } }}
The recipient phone number is not registered on WhatsApp.
Common Causes:
The phone number does not have WhatsApp installed
The phone number is a landline or VoIP number
The phone number was recently deactivated
How to Fix:
Verify the phone number is correct
Confirm the recipient uses WhatsApp
Consider falling back to SMS for this recipient
Example Response:
recipient_not_on_whatsapp response
{ "error": { "type": "provider_error", "code": "recipient_not_on_whatsapp", "message": "The recipient phone number is not registered on WhatsApp.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#recipient_not_on_whatsapp" }}
{ "error": { "type": "invalid_request_error", "code": "phone_number_not_assigned", "message": "The phone number +15551234567 is not assigned to this app.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#phone_number_not_assigned", "param": "from" }}
{ "error": { "type": "invalid_request_error", "code": "unsupported_message_type", "message": "This message type is not supported by WhatsApp.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#unsupported_message_type" }}
{ "error": { "type": "invalid_request_error", "code": "media_too_large", "message": "The image file exceeds the maximum size of 5 MB for WhatsApp.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#media_too_large", "param": "media" }}
{ "error": { "type": "invalid_request_error", "code": "template_not_found", "message": "Template 'order_confirmation' does not exist or hasn't been approved in language 'en_US'.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#template_not_found" }}
{ "error": { "type": "provider_error", "code": "groups_not_eligible", "message": "This phone number is not eligible to access the Groups API.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#groups_not_eligible", "provider": { "source": "meta", "code": 131215, "message": "Groups not eligible" } }}
Check your Meta Business Manager for any policy violation notices
Resolve any outstanding billing issues
Appeal the restriction through Meta Business Manager if you believe it was applied in error
Related Provider Codes:
Provider
Code
Meaning
Meta
368
Policy violations
Meta
130497
Country restriction
Meta
131031
Account locked
Meta
131042
Payment issue
Example Response:
This error is automatically enriched with Health Status details when Meta returns it. The additional_info and provider.health_status fields tell you exactly which entity is blocking and what Meta suggests.
account_restricted response
{ "error": { "type": "provider_error", "code": "account_restricted", "message": "Account has been locked due to policy violation.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#account_restricted", "additional_info": [ "Appeal via Business Manager." ], "provider": { "source": "meta", "code": 131031, "message": "Account has been locked", "health_status": { "can_send_message": "BLOCKED", "entities": [ { "entity_type": "PHONE_NUMBER", "id": "852850827913949", "can_send_message": "BLOCKED", "errors": [ { "error_code": 131031, "error_description": "Account has been locked", "possible_solution": "Appeal via Business Manager." } ] } ] } } }}
The phone number’s display name is pending Meta approval.
Common Causes:
A new display name was submitted and is still being reviewed
Meta rejected the display name and it reverted to the previous one
How to Fix:
Wait for Meta to approve the display name (typically 24-48 hours)
Check the phone number status in your dashboard
If rejected, submit a new display name that complies with Meta’s naming guidelines
Related Provider Codes:
Provider
Code
Meaning
Meta
131037
Display name not approved
Example Response:
This error is automatically enriched with Health Status details. additional_info carries Meta’s own remediation text (e.g. current review status, approval ETA).
display_name_not_approved response
{ "error": { "type": "provider_error", "code": "display_name_not_approved", "message": "Phone number display name is pending Meta approval.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#display_name_not_approved", "additional_info": [ "Your display name has not been approved yet. Your message limit will increase after the display name is approved." ], "provider": { "source": "meta", "code": 131037, "message": "Display name not approved", "health_status": { "can_send_message": "LIMITED", "entities": [ { "entity_type": "PHONE_NUMBER", "id": "852850827913949", "can_send_message": "LIMITED", "additional_info": [ "Your display name has not been approved yet. Your message limit will increase after the display name is approved." ] } ] } } }}
No WhatsApp Business Profile is configured for this app.
Common Causes:
Attempting to send a WhatsApp message from an app that has not completed Embedded Signup
The WhatsApp Business Profile was disconnected or deleted
How to Fix:
Complete the Embedded Signup flow to connect a WhatsApp Business Account
Check that a WhatsApp phone number is assigned to your app
Example Response:
whatsapp_not_configured response
{ "error": { "type": "invalid_request_error", "code": "whatsapp_not_configured", "message": "No WhatsApp Business Profile is configured for this app. Complete the Embedded Signup flow to get started.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#whatsapp_not_configured" }}
The endpoint is only available to test apps. The provided API key belongs to a live app.
Common Causes:
Calling a playground endpoint with a live API key (sk_live_app_*)
Using a production app key for testing scenarios
How to Fix:
Use a test API key (sk_test_app_*) for the test app paired with your live app
Switch to your test environment when simulating inbound traffic
Example Response:
test_app_required response
{ "error": { "type": "authentication_error", "code": "test_app_required", "message": "The playground inbound endpoint is only available for test apps. Use a test API key (sk_test_app_*) to simulate inbound traffic.", "doc_url": "https://docs.buildwithchirp.com/api_reference/error-codes#test_app_required" }}