My message is showing as attempted/failed! Why?

Attempted vs. Failed

If you see ‘Attempted’ or ‘Failed’ as a status on your message in Delivery Logs, there are a few reasons why that might be the case.

Attempted means that your message has been created and we’ve tried to send it to the delivery provider, which then would send to your end user. If you’re sending an email, for example, that means that your email has been put together in Customer.io, and we’ve tried to send it to an ESP such as SendGrid. If a message status is showing as attempted, it means that we’ll try again to send it soon. Eventually, the message will send successfully, or it will fail.

Failed means that we weren’t able to successfully send your message to the delivery provider. It never left Customer.io.

Basic Example

In most cases, a failed message can be traced to a problem with a Liquid tag. We have a few steps for you to follow that might help you diagnose the issue, Liquid or otherwise:

1. Head to the delivery page for more information

To find more information, click on the subject of the attempted/failed email; you’ll be brought to a details page, which in our case will display the reason for the failure:

Here, it’s because a customer’s name was missing from their profile, so the email couldn’t send.

2. Fix the variable

Once you know the guilty variable, head into the composer for that email by clicking the Fix email button– or whatever the message type might be. Then, search out that variable or piece of Liquid code. Here’s the bad customer.name example:

3. Fix!

There are a couple of ways to do this for our particular example.

Option 1: You can edit your Liquid code so that it includes a fallback option. A fallback tells Customer.io what to or do when that attribute doesn’t exist, so your message will still be sent. For this example, that would look like:

{% if customer.name != blank %}

    {{ customer.name }}

{% else %}

    there

{% endif %}

This way, if the recipient doesn’t have the name attribute, the email will default to “Hey there!” instead of failing!

Option 2: Add the missing attribute and value to your recipient

In case this particular person is missing that attribute and it should be there, you can add it to their profile.

4. Send again!

Once the error on a failed message has been fixed, you can click Retry to send it again. If it’s a message with an Attempted status, it should send successfully on our next try.

Other Errors

Different message types can fail with different error messages; it doesn’t always have to do with Liquid. We try our best to show you what went wrong. In the case of push notifications, for example, a device may fail because the device token on the profile is incorrect:

Or, for SMS, a phone number may be missing. Either way, this information will be available on that message’s delivery page. Some errors may simply instruct you to contact us.

If you’re still having trouble with too many attempts or fails with your messages, let us know and we’ll help you troubleshoot!