No Push Notification was Received

Steps for Troubleshooting:

  • Check your user profile within the “Engagement” tab in the “User Profile” to see if you are actively registered for push for the app group that you are trying to receive push notifications for. If you are registered for multiple apps, you will see them listed within the “Push Registered For” field:


  • Ensure you fall into the segment that you are targeting (if this is a live campaign and not a test).
    • In the “User Profile” you will see a list of segments that the user currently falls into.
    • This is ever-changing as segmentation is updated in real time.


  • Check Global Frequency Caps. It’s possible you did not receive the push notification because your app group has global frequency capping in place and you’ve already hit your push notification cap for the specified time frame.
    • Check global frequency capping within the dashboard.
    • Additionally on the campaign itself, you will see that if the campaign is set to abide by frequency capping rules, there will be a number of users impacted by these settings.


  • Check if you’re past your rate limits. If you have a rate limit set for your Campaign or Canvas, you might be falling out of receiving messaging due to how you set this up. Check out this section of Academy to learn more about rate limits.

  • Check if you fall into the control group. If this is a single channel campaign or a canvas with a control group, it’s possible you are falling into the control group.

In-App Messages

In-App message Impressions Appear Lower Than Expected

Steps for Troubleshooting:

  • Check your segment. It’s important to make sure that your segment size in the campaign reflects your intended audience. Perhaps there are filters that are limiting your audience that are causing your campaign to have fewer impressions.

  • Check campaign and segment changelogs. If the impression count is low compared to where it once was, make sure no one unintentionally altered the segment or campaign since launch. Our segment and campaign changelogs will give you insight into changes that have been made, who made the change, and when it happened.


  • Clone the campaign and test. A quick way to identify any obvious issues is to clone the campaign and target your own userid/email and launch the campaign. Once you perform the message trigger (session start, custom event, etc.), see if you receive the message correctly. Then, navigate to the dashboard and refresh the page to see if your impression is logged correctly. If it is not, then the problem is likely with your implementation.

  • Make sure the event is tracking. If the campaign is triggering off of a session start or a custom event, you will want to make sure that this event or session is happening frequently enough to actually trigger the message. You can check this data on the App Usage (for session data) or Custom Events pages:


  • Check with your developers to see if you use In-App Message Customization. Customization of the In-App Message UI or delivery mechanisms within the SDK may require your developers to utilize our methods to manually log in-app message impressions.
    • iOS In-App message documentation.
    • Android In-App message documentation.

In-App Messages Not Displaying

Steps for Troubleshooting:

  • Make sure the event is tracking. If the campaign is triggering off of session start or a custom event, ensure that this event or session is happening frequently enough to actually trigger the message. You can check this data on the App Usage (for session data) or Custom Events pages:


  • Check with your developers to see if you use In-App Message Customization. Customization of the In-App Message UI or delivery mechanisms within the SDK may require your developers to utilize our methods to manually log in-app message impressions.

  • Determine whether the trigger event is failing to occur, or the message itself is unable to display.
    • To do this, try triggering the message off of a different action (like a session start, or different custom event) and see if it displays. This will help isolate if this is potentially a data issue.
    • Another thing to try is using a different type of in-app message template or image. There are specs for in-app messages that must be followed. Sometimes if an image is too large, it will prevent the in-app message from displaying.
  • Find out if you have customized your session timeout. By default, Braze retrieves in-app messages at the start of a session from the server. This is a customizable element of your integration. If you have an extended the session timeout it will cause an extended period of time from which we can refresh the potential in-app messages you are eligible for. Additionally, if your campaign is set to trigger off of a session start, you’ll need to make sure the appropriate amount of time has passed for a new session to be registered. For example, the session timeout may have been customized to be 30 seconds. If you open and close the app in less than 30 seconds you will not be eligible to receive another in-app message triggered on session start. You can read more about that here for iOS, Android and Web.

  • You might be trying to trigger them too quickly. There is a minimum interval at which we’ll allow in-app messages to be consecutively triggered. Review our documentation for more information on this on iOS, Android, and Web. These are customizable, however we have them in place to avoid over-messaging your users.


The HTML Looks Strange When I Send A test email To Myself

Steps for Troubleshooting:

  • First, confirm with your developers that your HTML is set up properly.

  • Certain Chrome extensions will cause issues with Braze’s email editor (one example is Grammarly). If you’re using one of these, you should either: edit Braze emails in a browser that does not have Grammarly, or contact success@braze.com and ask to flip your email editors to HTML only/plain text. This will remove your WYSIWYG editor, so you should first ensure that all team members are comfortable with HTML before making this request.

  • Emails render differently on different browsers and email clients. Record which browsers and email clients you’re seeing issues on.

  • Preview your emails in a program like Email on Acid or Litmus. These allow you to preview what emails look like in different browsers and email clients.

  • Once you’ve identified which browsers/email clients are causing issues, let your developer team know that they’ll need to modify their HTML and make edits to accommodate those browsers/email clients.

  • There are times when the preview in Email on Acid or Litmus still does not match what is sent via the Braze dashboard. One possible cause for this is the CSS in-lining that is performed by Braze - it may differ from the CSS in-lining performed by other tools. If you suspect that this is the case, contact success@braze.com to ask for CSS in-lining to get flipped off.

Campaigns and Canvas

Using Custom Event Properties

Steps for Troubleshooting:

Custom event properties are metadata that describe custom events, and multiple properties can be logged each time a custom event is logged.

How can I confirm that all event properties are logged correctly?:

  • Check with your developers which event properties are being tracked. Keep in mind that all event properties are case sensitive.

  • To confirm that the event properties are successfully tracked, you can view all event properties by going to the Manage App Groups page, clicking on the Custom Events tab, then clicking on Manage Properties. This will show you the names of all of the properties associated with an event.

  • To check the specific property values that are being passed for each event, check the event user logs on your dashboard. After adding your user as a test user, you should perform the custom event within the app, wait around 10 seconds for the data to flush, and then refresh the event user log to view the custom event and the event property value that was passed with it.

Can I Use location data in my campaigns? Why is location data not showing up?

Steps for Troubleshooting:

Braze captures a user’s most recent location by default via its SDK. Most recent location is the location at which the user most recently used your app (unless you are sending Braze background location data, in which case you may have more granular data available).

In order to see whether location data is being sent to Braze, use the “location available” filter. This filter will allow you to see the percentage of users for whom you have a “Most recent location”.


If no users have available locations, you should take the following steps to get to understand why:

  • Confirm that your app is collecting location data. For iOS this means that users are opting in to sharing their location data via a prompt at some point in the user journey. For Android, confirm that your app asks for fine or coarse location permissions at install time.

  • Confirm that your developers are passing location data to Braze. Normally passing location data is handled automatically by the SDK once the user gives permissions, but it’s possible that your developers have disabled location tracking in Braze. More information on location tracking can be found here for Android and iOS.

Why are there more people in the control group than in a variant in my Canvas?

  • A user will enter a Canvas when they fit all of the criteria defined in the Entry Step. When setting up your Canvas, you define what percentage of users will enter each Variant and the Control Group.

  • However, let’s imagine the following scenario:

    • A Canvas has Variant 1, and a Control Group.
    • The first step of Variant 1 is a push notification.
    • 90% of users should enter Variant 1, and 10% the control group (see image of example below):


  • In this scenario, 90% of the users who enter the Canvas should enter Variant 1. However this is not the case because only users who are eligible to receive a push notification will enter Variant 1.

  • If we look back to the Entry Audience (Active Users), we can see that even though it contains 39.8k users, only 29.1k (73%) of them are Push Enabled:


  • This means that even though we specified that 90% of users should enter Variant 1, not all of those users are actually able to receive a push notification. This means that those users will not be able to enter Variant 1 and will enter the Control Group.

  • So, what can I do? When creating a Canvas with a Control Group, ensure that all users in the Entry Audience are able to receive messages within the Canvas - i.e. if the Canvas contains push and email messages, ensure the Entry Audience has the filters ‘Is Push Enabled’ and ‘Email Subscription Status is Opted In or Subscribed’.

Why isn’t my Canvas sending to anyone / x people?

  • Check your Entry Step conditions

Schedule: * Is the Canvas scheduled correctly? * Have you chosen the correct date and time? * If you’ve chosen Action-Based - have users definitely performed those actions since you launched the Canvas?

Entry Audience: * Have you chosen the correct Segment? * How is the segment set up? * Have you ensured that the segment contains any users? * Have you added any additional filters that would limit the number of users entering the Canvas? * Are the users able to receive the first step of your variants? If the first step of your Canvas is a push notification, but the Entry Audience are all Push Disabled, no users will receive any messages.

Entry Settings: * Have you limited the number of people who will potentially enter the Canvas? Users may also drop out of a Canvas if they are no longer eligible to receive messages. For example, if the Canvas only contained push notifications, and a user opted out of push after receiving the First Step - that user would drop out of the Canvas. Consider pre-empting this by using branching to add in alternative user journeys.

Why are my conversions low?

Steps for Troubleshooting:

  • Make sure the event is tracking. If the campaign is triggering off of a session start or some custom event, you will want to make sure that this event or session is happening frequently enough to actually trigger the message. You can check this data on the App Usage (for session data) or Custom Events pages:


  • Ensure the deadline to convert is what you want. For each conversion event that you select per campaign, you are choosing the deadline. Meaning, you are setting a time limit for when a conversion must happen in order for it to count towards a conversion for each respective campaign.

  • Please ensure you’ve reviewed Braze’s information on how it calculates Conversions in order to understanding your campaign metrics.

Why is my Campaign/Canvas not Triggering

Steps for Troubleshooting:

Make sure the campaign that you are triggering is not using the same trigger event in the segment.

  • If the campaign is triggering off of a custom event, you will want to make sure that this event is not included in the segment you will input into the campaign. For example, if the segment includes the event Session Start “Has Used Apps more than 1 time” and the event the campaign triggers off of is Session Start, the user will receive the message, it just won’t necessarily be for the first session. This is because the first step when checking to see if a user should receive a campaign is reviewing the segment target audience. If the user does not fall into the segment first, they will not receive the campaign even if they perform the trigger.

Using Event Logging

Steps for Troubleshooting:

  • This should be used if you are testing what behavior looks like for an anonymous user. It can also be used for the app you are testing that does not collect email and you are struggling to find the user ID. You can use Braze along with your device’s IP to add that device as a test user.

  • This is a great way to find anonymous users. You can also use this information to test what data is being sent to Braze and check any discrepancies. From this view you are also able to identify if the deltas of your data are being sent to Braze. If you are noticing something like an email address or push token is being sent with every event logged, that would indicate that all data is being sent to Braze.

  • For more information on how to set up an anonymous profile to test in Braze, review the Event User Log section of Academy.


Segment is Showing 0 Users

Steps for Troubleshooting:

  • If you are seeing 0 users and anticipate that there are more than 0 users in the segment, it could be because this number is an estimation. The estimation is calculated based on a random sample with a 95% confidence interval that the result is within +/- 1%. The larger your user base is, the more likely it is that the size of your segment is a rough estimate. To ensure that your segment contains the single user you are targeting, click on “Calculate Exact Statistics” on the segment page. This will calculate the exact number of users in your segment, without any rounding:


  • It is possible that the data you are filtering on is not being sent to Braze. To check which custom events are being sent to Braze, select “Custom Events” on the left hand menu in the “Data” section. Select the custom event along with the specific dates and app to see what data is actually being sent to Braze. If you notice that 0 data is being sent to Braze, the next step is to evaluate how you are sending the events to Braze:


Note The data that you are capturing in the dashboard might not have the correct syntax as what you are sending Braze. Ensure that these two exactly match.

Segmentation Logic with And/Or

Steps for Troubleshooting:

  • AND: Use AND if you are interested in the intersection of two groups. This is what is similar between the two groups. For example let’s compare two animals. What dogs AND cats both have in common is fur, are mammals, and are human pets (highlighted in red in the photo below):


  • OR: Use “or” if you want to target users who meet at least one condition in a group of conditions. If you have 3 conditions linked together by “OR”, one, two or all of the conditions could be true in order for the statement to be true.

  • Let’s apply these concepts to the Braze dashboard filters: Imagine that you want to send a message to all your users EXCEPT those users on version 1.0 or 1.1 of your app. Using the analogy of the cat and dog, you want to target the overlap of users that are not on version 1.0 and not on version 1.1. You can do this segment one of two ways:

    • The first way is a bit more challenging. You will need to add a filter for each and every version of your app using the OR making sure to exclude app versions 1.0 and 1.1.

    • Alternatively you can use two filters “is not 1.0” AND “is not 1.1” (see picture below). Using this AND filter you are targeting all users that do not have version

  • 1.0 AND 1.1 Example:


  • Finally let’s look at the example below where we are using both the AND and OR.
    • The target audience here are users who’ve purchased Nike Sneakers or Adidas sneakers and are opted in to receive email notifications.



  • Another way to ensure you’re building the right logic, is to create your segment and preview the users who are falling into it based on your filters. This way, you can make sure that their attributes, app version, or any other segmentation matches what you are seeing.

Segmentation Logic With Negative Or Filters

The “Or” operator allows you to create a statement that will evaluate to true if a user meets the criteria for one or more filters in the statement. For example, consider a promotion that is valid for your US and Canadian customers. You want to make sure that only customers in areas where the promotion is valid receive the promotion. You can use the following statement to target your campaign: Country is United States OR Country is Canada


A customer who meets one or more of the country filters will recieve your campaign so your campaign will only go to customers whose country is Canada or whose country is United States.

In certain circumstances, the “Or” operator should not be used. For example, let’s say that you have a campaign that is valid in every country EXCEPT for the US and Canada. Inverting our logic from the last scenario leads to a segment that targets all customers: Country is not United States OR Country is not Canada


The statement above will target all customers, because all customers will meet the criteria for one or more of the filters. Canadian customers meet the criteria for “Country is not United states”. US customers meet the criteria for “Country is not Canada”.

The negative targeting criterias “is not” and “does not equal” should not be used with the “OR” operator when two or more filters are referencing the same attribute. If “is not” or “does not equal” is used with the “OR” operator two or more times in a statement, customers will all values for the relevant attribute will be targeted.

If you’d like to include customers with two or more values for a particular attribute, you should use the “AND” operator. Let’s return to our use case - targeting customers from every country except for Canada and the United States.

Country is not United States AND Country is not Canada will only include customers who are not from the United States AND who are not from Canada. Therefore, both United States customers and Canadian customers will be excluded.

Because there are no valid use cases for using “Or” operands with two or more negative filters that have the same attribute, Braze will not allow you to continue creating your campaign or segment if you use this configuration with “does not equal” or “is not” comparisons.


If you received this warning message and aren’t sure how to correct your campaign, canvas or segment, please get in touch with your Customer Success Manager or write to our support team.

My Filter Options Have Changed (Data Type)

Steps for Troubleshooting:

  • Your filter options are related to the format (data type) that you’re passing to Braze for your Custom Attribute. To review the data type that Braze is recognizing for your custom attribute(s), navigate to “Manage App Group” then select “Custom Attributes”.

  • If your filter options have changed, this is an indication that your data is being passed to Braze in a different format (data type) than before. For detailed descriptions of different data types and their filtering options, refer to the Custom Attribute Data Types section of the Braze Academy.

  • Please note that changing the data type of a custom attribute in the dashboard will reject data that is being sent to Braze in a different format.