Skip to main content
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.

Quick Reference


Messaging Errors

message_undeliverable

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: Example Response:
message_undeliverable response

conversation_window_expired

Common Causes:
  • More than 24 hours have passed since the recipient last sent you a message
  • Attempting to send a free-form message outside the conversation window
How to Fix:
  • Send a template message to re-open the conversation
  • Set up webhooks to track when customers message you, so you can respond within 24 hours
Related Provider Codes: Example Response:
conversation_window_expired response

recipient_not_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

phone_number_not_assigned

Common Causes:
  • Using a phone number that belongs to a different app
  • The phone number was recently unassigned from this app
  • Using a test key with a production phone number
How to Fix:
  • Assign the phone number to your app in the dashboard
  • Verify you are using the correct app key
  • Check phone number assignments via the Phone Numbers API
Example Response:
phone_number_not_assigned response

unsupported_message_type

Common Causes:
  • Sending an interactive message type that is not supported
  • Using a media type the platform does not accept
  • Attempting to send a WhatsApp-only message type via SMS
How to Fix:
  • Check the supported message types for the channel you are using
  • Verify media types are within platform limits
Related Provider Codes: Example Response:
unsupported_message_type response

media_too_large

Common Causes:
  • Image exceeds 5 MB (WhatsApp or MMS)
  • Video exceeds 16 MB (WhatsApp) or 5 MB (MMS)
  • Document exceeds 100 MB (WhatsApp)
How to Fix:
  • Compress the media file before sending
  • Use a lower resolution or bitrate
  • Check platform media limits for exact size constraints
Example Response:
media_too_large response

invalid_phone_number

Common Causes:
  • Missing the + prefix
  • Including spaces, dashes, or parentheses
  • Invalid country code or number length
How to Fix:
  • Format the number as +[country code][number] with no spaces or special characters
  • Example: +14155552671 (US number) or +447911123456 (UK number)
Example Response:
invalid_phone_number response

Template Errors

template_not_found

Common Causes:
  • Typo in the template name
  • The template has not been approved by Meta yet
  • The template was approved in a different language than the one requested
  • The template was rejected for policy violations
How to Fix:
  • Check the template name in the dashboard
  • Verify the template status is “approved”
  • Ensure you are requesting the correct language code
  • See Templates for template management
Related Provider Codes: Example Response:
template_not_found response

template_parameter_mismatch

Common Causes:
  • Sending too many or too few variables for the template
  • Variables are in the wrong format (e.g., sending a string where a currency object is expected)
  • Template definition was updated but your code still sends old parameters
How to Fix:
  • Check the template definition for the exact number and format of variables
  • Ensure each variable matches the expected type
  • Re-sync your template data if the template was recently updated
Related Provider Codes: Example Response:
template_parameter_mismatch response

Group Errors

groups_not_eligible

Common Causes:
  • The phone number has not been approved for the Groups API by Meta
  • The WhatsApp Business Account does not meet the Groups API requirements
How to Fix:
  • Check with Meta for Groups API eligibility requirements
  • Ensure your WhatsApp Business Account is in good standing
  • See WhatsApp Groups for setup instructions
Related Provider Codes: Example Response:
groups_not_eligible response

Account Errors

account_restricted

Common Causes:
  • Policy violations on your WhatsApp Business Account
  • Billing issues with your Meta account
  • High spam report rate from recipients
  • Messaging to restricted countries
How to Fix:
  • Review Meta’s Commerce Policy and Business Policy
  • 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: 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

display_name_not_approved

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: 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

whatsapp_not_configured

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

Provider Errors

meta_api_error

Common Causes:
  • Meta returned an unrecognized or generic error code
  • A transient issue with Meta’s infrastructure
How to Fix:
  • Retry the request with exponential backoff
  • Check the provider.code and provider.message for additional context
  • If the issue persists, contact support with the provider.fbtrace_id
Related Provider Codes: Example Response:
meta_api_error response

meta_api_unavailable

Common Causes:
  • Meta is experiencing an outage or degraded performance
  • The WhatsApp Business Account is in maintenance mode
  • Temporary service disruption
How to Fix:
  • Retry the request with exponential backoff
  • Check Meta’s status page for known outages
  • If the issue persists for more than 30 minutes, contact support
Related Provider Codes: Example Response:
meta_api_unavailable response

telnyx_api_error

Common Causes:
  • Telnyx returned an unrecognized or generic error
  • A transient issue with Telnyx’s infrastructure
How to Fix:
  • Retry the request with exponential backoff
  • Check the provider.code and provider.message for additional context
  • If the issue persists, contact support
Example Response:
telnyx_api_error response

telnyx_api_unavailable

Common Causes:
  • Telnyx is experiencing an outage or degraded performance
  • Temporary service disruption
How to Fix:
  • Retry the request with exponential backoff
  • Check Telnyx’s status page for known outages
  • If the issue persists for more than 30 minutes, contact support
Example Response:
telnyx_api_unavailable response

Rate Limiting Errors

rate_limit_exceeded

Common Causes:
  • Exceeding the per-endpoint rate limit
  • Burst of requests without rate limiting on your end
How to Fix:
  • Implement exponential backoff (see Handling Errors)
  • Check the Retry-After header for how long to wait
  • See Rate Limits for per-endpoint limits
Example Response:
rate_limit_exceeded response

whatsapp_rate_limited

Common Causes:
  • Sending too many WhatsApp messages in a short period
  • Your WhatsApp Business Account’s messaging tier limit was reached
How to Fix:
  • Implement exponential backoff
  • Request a higher messaging tier through Meta Business Manager
  • Spread messages over a longer time window
Example Response:
whatsapp_rate_limited response

Resource Errors

resource_already_exists

Common Causes:
  • Attempting to create a resource with a slug or name that is already taken
  • Duplicate webhook registration
  • Re-submitting a creation request that already succeeded
How to Fix:
  • Use a different identifier for the new resource
  • Check if the resource already exists before creating it
  • If this was a retry, the resource may have been created on the first attempt
Example Response:
resource_already_exists response

Playground Errors

test_app_required

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