Common API-Triggered Broadcast errors

Updated

This page lists some common errors you might encounter when you trigger a broadcast, and troubleshooting options to help you overcome these errors.

Method Not Allowed

You might have misspelled the request URI. The URI should look like the following (with the broadcast/trigger :id):

  • US region: https://api.customer.io/v1/api/campaigns/:id/triggers
  • EU region: https://api-eu.customer.io/v1/api/campaigns/:id/triggers

“status”:“400”

{
  "errors":[
    {
      "detail":"bad request (reference 01C4MWXZPAR1SHBSZT4ZMZ6KZV)",
      "status":"400"
    }
  ]
}

Reason: Issues with the JSON formatting of the request. This could be mismatched opening or closing brackets, missing commas or quotes, etc.

“status”:“401”

You’ve provided an incorrect or invalid bearer token. Check that your token provides access to the workspace containing your broadcast and has sufficient permissions to trigger a broadcast.

{
  "errors":[
    {
      "detail":"unauthorized",
      "status":"401"
    }
  ]

“status”:“403”

The URL or the credentials in your data_file_url might be incorrect.

{
    "errors": [
        "failed to download data file, server responded with code 403 Forbidden"
    ],
    "next": 0
}

“status”:“404”

Your Broadcast’s trigger id doesn’t exist. You can double-check it by looking at your broadcast’s Triggering Details tab.

{  
  "errors":[  
    {  
      "detail":"not found (reference 01C4MWKQA9XTFNYR68QB7JJ0XA)",
      "status":"404"
    }
  ]
}

“status”:“422”

A 422 error means that your broadcast trigger failed a validation check. You can look use the trigger ID from the error detail to look up more information about the failure. Some common errors include:

  • Mistyped keys or values
  • One or more people in the payload don’t exist
  • Improper or missing request headers when sending a cURL request (-H "Content-Type: application/json”)
  • You used ids, emails or recipients alongside per_user_data or data_file_url. You can only use one of these in your request.
  • If you used per_user_data or data_file_url, email addresses in your request might resolve to more than one person.
{
  "errors":[
    {
      "detail":"recipients filter is not valid",
      "source":{
        "pointer":"/data/attributes/recipients"
      },
      "status":"422"
    }
  ]
}
{
    "errors": [
        {
            "detail": "exactly one of \"recipients\", \"ids\", \"emails\", \"per_user_data\", or \"data_file_url\" must be provided",
            "source": {
                "pointer": "/data/attributes/recipients"
            },
            "status": "422"
        }
    ]
}

Overriding missing or duplicate identifiers

While broadcasts fail by default when they encounter missing or duplicate IDs or emails, you can override this behavior by setting flags in your request payload:

  • email_add_duplicates: Set to true to allow broadcasts to send to people with duplicate emails.
  • email_ignore_missing: Set to true to skip over any people in your audience who don’t have emails, and continue sending to the rest of your audience.
  • id_ignore_missing: Set to true to skip over any people in your audience who don’t have IDs, and continue sending to the rest of your audience.

Need help?

If you’ve encountered a different error, or need more help fixing one the errors listed on this page, let us know!

Copied to clipboard!
  Contents
Is this page helpful?