> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: July 10, 2026

# Common API-Triggered Broadcast errors

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”

```json
{
  "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.

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

### “status”:“403”

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

```json
{
    "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.

```json
{
  "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.

```json
{
  "errors":[
    {
      "detail":"recipients filter is not valid",
      "source":{
        "pointer":"/data/attributes/recipients"
      },
      "status":"422"
    }
  ]
}
```

```json
{
    "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](https://customer.io/contact/)!

*   *   *   [Method Not Allowed](#method-not-allowed)
        *   [“status”:“400”](#status400)
        *   [“status”:“401”](#status401)
        *   [“status”:“403”](#status403)
        *   [“status”:“404”](#status404)
        *   [“status”:“422”](#status422)
            *   [Overriding missing or duplicate identifiers](#overriding-missing-or-duplicate-identifiers)
        *   [Need help?](#need-help)

Copy page

Copy page [Download .md](/messaging/send/broadcasts/api-triggered-errors.md)

Is this page helpful?

![](https://docs.customer.io/images/export-success.png) ![](https://docs.customer.io/images/export-failure.png)

# How can we make it better?

Close

Do you need help from Customer.io support?  No  
 Yes

What part of Customer.io do you need help with? 

How can we improve this page?

Email (optional):  Please provide a valid email address

 I am not a bot

 

We appreciate your feedback!

Our support team will contact you as soon as possible
