There are multiple ways to send an email to your Subscribers, and numerous reasons an email isn’t sent depending on the email sending method you use. This article focuses on identifying the common root causes of emails not being sent to the expected number of subscribers. When sending Emails using Automation Studio, Journey Builder, or Triggered Sends there are some additional situations to consider which are articulated at the end of the document.
A: The most common causes are inactive Subscriber Status, Exclusion/Suppression List matches, List Detective filtering invalid addresses, or a misconfigured Sendable Data Extension Subscriber Relationship.
A: Set up a NotSent Tracking Extract using your JobID — this returns each subscriber who was skipped and the reason (e.g., "Subscriber Deleted", "Excluded", "List Detective").
A: Check the Triggered Send Definition status (must be "Running"), review Exclusion Scripts, Domain Exclusion DEs, and confirm the subscriber's status in All Subscribers.
Each time you send an email from your Marketing Cloud Engagement account, an account-specific 'JobID' is automatically assigned to that specific instance of the email sent. The JobID is a unique identifier used by the system to associate all tracking data to individual send instances.
To find the JobID in question, use the Tracking section of Email Studio. The email's tracking information is stored in the same folder hierarchy as the email. Clicking the Email Name tied to the job takes you to the Tracking Overview Tab for the specific email.
The Tracking Overview Tab provides important tracking information such as the job encountered an error, the number of subscribers sent the email, the number of bounces, and subscriber activities such as opens and clicks.
Journey Builder and Triggered Sends have a JobID, but the Triggered Send Tracking section of Email Studio shows email Sends by the Triggered Send Name rather than the JobID. You can use the TriggeredSendID or JobID to troubleshoot triggered sends.
The following video shows how to locate the JobID in Email Studio Tracking:
This video demonstrates how to locate a JobID in Email Studio Tracking and cross-reference it with Subscriber Status to identify missing sends.
Alert Manager provides an Admin the ability to be notified of Email Send errors such as system issues or subscriber limits. It’s recommended you set up Alert Manager so you can identify job-level issues and react as soon as possible.
Watch this quick video to learn how to set up Alert Manager and review the Marketing Cloud Engagement Alert Manager Errors Knowledge Article for error details and recommended actions.
The video above demonstrates how to configure Alert Manager in Marketing Cloud so admins receive real-time notifications for job-level send errors.
There are several reasons that may not be obvious and cause the email audience count to be greater than the number of emails sent. Review the following sections to confirm if they are causing an unexpected difference in your audience counts and email send counts.
For an overview of Subscriber statuses, review the following video or steps.
The video above explains the different Subscriber status types (Active, Unsubscribed, Held, Bounced) and how each status affects whether a subscriber receives an email send.
To check a Subscriber Status, note down the SubscriberKey of the record and follow these steps.
Review the Subscriber Status that is returned and ensure the Subscriber is Active for the email to be delivered.
Marketing Cloud Engagement uses the SubscriberID value to determine if a Subscriber is a duplicate in lists, groups, and data filters created from a list. Data Extensions are de-duplicated by email address. If you're attempting to apply multiple Lists or Data Extensions to a Send, Subscribers who appear on multiple Lists or Data Extensions are sent a single email. To check for duplicate Subscribers export each List and Data Extension you are sending from and combine them into a single file. Then review the file to confirm if you have duplicate Subscribers.
Perform the following steps to Export a List:
Perform the following steps to Export a Data Extension:
When an Exclusion and Suppression List is applied to a send, Subscribers who are in your audience and an Exclusion or Suppression List aren’t sent the email.
Watch this quick Salesforce Support video to learn more about Exclusions and Suppressions lists and how to confirm if they have prevented an email from being sent or follow the steps after the video to check if a subscriber has not been sent due to an Exclusion or Suppression List.
The video above shows how to check the Tracking Overview for excluded subscriber counts and how to search Exclusion and Suppression Lists in Email Studio to find specific subscriber records.
To review if the Send excluded a Subscriber, you can check the Tracking information for the Job.
Perform the following steps to find which Subscribers were excluded from the Send.
An Auto-Suppression List is different from an Exclusion and Suppression List because it’s automatically applied to a Marketing Cloud Engagement send without user intervention. A Subscriber excluded from a Send because they're part of an Auto-Suppression List appears in the Tracking Summary for the Send.
To review the Subscribers in an Auto-Suppression List, perform the following steps.
List Detective prevents email addresses that are known to be invalid, inactive or spam traps from being sent an email. For Lists, the email addresses are checked during the import process. For Data Extensions, the email addresses are checked at the time of sending.
Watch this quick screencast from our Support YouTube Channel or read the information after to learn about List Detective and how to check if it is preventing the email from being sent to a Subscriber.
This video demonstrates how to use the List Detective import test method in Email Studio to check whether a specific email address will be filtered at send time, and how to read the Results File to confirm if List Detective prevented the address from being added to the send audience.
There are two ways in which you can check if List Detective prevents an Email Send; Import into a List or REST API.
Use the following steps to verify if a Subscriber will be excluded from an email due to List Detective:
For more detailed instructions, review the Import into a List Help documentation.
If you're familiar with REST API, you can use the validateEmail resource to check if an EmailAddress is likely to be excluded by List Detective. The following is an example of the body of the request you can use to validate an EmailAddress.
{
"email": "example@example.com",
"validators": [ "ListDetectiveValidator" ]
}
When a Contact is submitted for Deletion, the Marketing Cloud Engagement prevents Sends to the Contact and prevents them from being processed by the Marketing Cloud Engagement. Note the following point in our Contact Delete Best Practices documentation.
⚠️: You can’t reintroduce a contact that is in suppression or in the process of being deleted once the suppression period is over. During this time, you can’t perform any sends, including transactional sends, to that Contact.
Suppose you attempt to send to a Contact that is being deleted, and they're not excluded by the process populating the Data Extension. In that case, the Contact appears in the NotSent Data Extract showing as the following:
For more information on setting up a NotSent Data Extract, review our Report on 'Not Sent' subscribers through email sends Knowledge Article or watch the following short video from the Support YouTube Channel.
The video above walks through how to configure a NotSent Data Extract in Automation Studio using a JobID, and how to retrieve the EventType and Reason fields to confirm subscribers blocked due to Contact Delete.
If you scheduled the Email to be sent at a future Date and Time, the List or Data Extension may have changed between the time it was scheduled and sent. The audience can be modified directly using ad-hoc Imports or an Import Definition within an Automation. You can review Import Definitions in Automation Studio or Email Studio.
⚠️: Import Definitions in Contact Builder only show Imports to Lists within Mobile Studio
When using a Sendable Data Extension as your Email audience there are two situations that may cause emails to not be sent as expected.
Watch this quick video to learn how to configure a sendable data extension and verify if the current configuration is preventing an email from being sent to Subscribers or read the information after the video.
The video above demonstrates how to set up a Sendable Data Extension in Marketing Cloud, including defining the Send Relationship and ensuring the correct EmailAddress DataType field is configured.
The field you set as the Send Relationship of the Data Extension is key to ensuring the right Subscriber (and EmailAddress) is sent to within your Marketing Cloud Engagement Sends. The value of this field is used to find the EmaillAddress of the Subscriber on the All Subscribers List. Getting this field wrong can lead to duplicate Subscribers, incorrect Tracking data, and sends to EmailAddresses that have opted out previously.
To check your subscriber relationship, watch the following short video from the Support YouTube Channel or follow the steps outlined after.
The video above shows how to navigate to the Subscriber Relationship section in Email Studio and Contact Builder, and how to verify that the Send Relationship field correctly maps to the subscriber identifier in your Data Extension.
Within Email Studio:
Within Contact Builder:
Note: If you’ve sent an Email to a Data Extension using the wrong Subscriber Relationship, it can result in invalid Subscriber records being created on the All Subscribers List. Consider using the Contact Delete framework to remove these duplicates from your account.
EmailAddress Field Data Type:
If Subscribers within a Data Extension don’t exist in the All Subscribers List, they’re added to the All Subscribers List at send time. In order for the system to add the Subscriber, the Data Extension must be sendable and have a field linking back to the All Subscribers List, AND it must have an EmailAddress DataType field.
If your Data Extension doesn't contain an EmailAddress DataType field, you can use a Query Activity to check which Subscribers don’t exist on the All Subscribers List and weren’t sent to in your Send. Join your Data Extension to the _Subscribers DataView and perform a check where the row isn’t present on the _Subscribers Data View, which is your All Subscribers List.
The following example query returns all Subscribers in a Data Extension that don’t exist on the All Subscriber's List.
SELECT DE.SubscriberKey, S.SubscriberKey
FROM [Name of Data Extension] AS DE
LEFT OUTER JOIN _Subscribers AS S
ON DE.SubscriberKey = S.SubscriberKey
WHERE S.SubscriberKey IS NULL
Suppose your Data Extension contains more than one EmailAddress DataType field, and the Subscriber isn’t on the All Subscribers List. In that case, the Marketing Cloud Engagement fails to create that Subscriber because it can't confirm which EmailAddress DataType field to use to create a Subscriber in the All Subscribers List.
Review your Data Extension and ensure only one EmailAddress DataType is set up. Use the following steps to confirm you’ve exactly one EmailAddress DataType on your Data Extension.
Within Email Studio:
Within Contact Builder:
You can Import into the All Subscribers List before sending and map the EmailAddress field within the Import to ensure all Subscribers are sent the email.
There are a few common Marketing Cloud Engagement reporting features available to assist in troubleshooting email sends. The following sections provide a brief explanation of each of these features.
Tracking Extracts provide granular tracking data of email send jobs, such as clicks, bounces, and survey data. To identify why a subscriber didn’t receive an email, we use the NotSent extract to receive a reason each Subscriber wasn’t sent an email.
Follow the steps in the Report on 'Not Sent' subscribers through email sends Knowledge Article or watch the following video for steps to set up, run, and view a NotSent extract for your jobID.
The video above demonstrates how to create a NotSent extract in Automation Studio, configure the JobID parameter, run the extract, and review the output file to determine which subscribers were skipped and why.
Send Logging Data Extensions provide the ability to obtain run-time information about email send data not available via standard reporting functions. Send Logging can be a powerful tool for reporting on and troubleshooting email sends.
The following video provides steps to set up and use a send logging data extension.
The video above shows how to create an Email Send Logging Data Extension, configure it to capture SubID, JobID, ListID, and BatchID fields, and join it with Data Views for subscriber-level tracking analysis.
When configuring your Marketing Cloud Engagement account or a new Business Unit, consider setting up a Send Logging Data Extension. To create a Send Logging Data Extension, follow the steps outlined in Create an Email Send Logging Data Extension and follow the Send Logging Best Practices and Tips.
Email Send Logging Data Extensions can be configured in one of two ways:
For more information about this configuration of the Send Logging Data Extension Contact Salesforce Customer Support.
Send Logging Data Extensions allow you to join its data with Data Views to collect Subscriber level tracking information that isn’t available in standard Reports or Tracking and can be customized to your use-case. An Email Send Log is created with the SubID, JobID, ListID & BatchID fields to join Data Views. Ensure you're joining all four fields (where applicable) to create optimized SQL queries to collect tracking data from email Sends for Subscribers.
It’s a best practice to configure a Data Retention Policy on the SendLog Data Extension to ensure it’s manageable and performant through its use within the Marketing Cloud Engagement. (⚠️ Also consider our documentation for optimizing SQL Queries).
Review our Send Logging Marketing Cloud Engagement Email Sends article for more information.
AMPscript can be used with the RaiseError() function to conditionally exclude subscribers from a send due to a subscriber-specific condition. RaiseError is intended to prevent an entire email send from going to an errored state when it encounters an unexpected situation within your subscriber data. A good practice is to have a Data Extension log when a subscriber is skipped by the RaiseError function so you can review these Subscribers to understand why they weren’t sent an email.
The following video provides steps to set up and use the Raise Error AMPScript function with a send logging data extension.
The video above demonstrates how to write a RaiseError function that conditionally skips a subscriber during a send and logs the JobID, EmailName, SubscriberKey, and AMPscript variable to a Data Extension for post-send analysis.
⚠️ The RaiseError function should not be used as an exclusion or suppression process.
If you use the RaiseError function and specific subscribers didn’t receive your email, check to see if they met a condition for your RaiseError function. If you have a RaiseError logging setup, you can check the RaiseError data extension to confirm if the Subscriber triggered RaiseError and prevented the system from sending the email.
The following example RaiseError function, logs the JobID, EmailName, SubscriberKey, and associated AMPscript to a Data Extension.
%%[
VAR @ABC
SET @ABC = 'ABC'
]%%
Raise Error Function example:
%%[
IF @ABC == 'ABC'
THEN
]%%
<p> ABC is displayed </p>
%%[
ELSE THEN
InsertDE('RaiseErrorLog',
'JobID',JobID,
'EmailName',EmailName_,
'SubscriberKey',_SubscriberKey,
'AMPscript',@ABC
)
RaiseError('Variable not correct',1,'123','12345',0)
]%%
<p> ABC not Displayed and RaiseError hit </p><p>
%%[
ENDIF
]%%</p>
When attempting to complete a Test send, you may find that it isn’t coming through after previewing against a subscriber in a List or Data Extension.
You can check whether the Test Send was successful or still processing by looking at Tracking in Email Studio. Test Sends are usually found within the ‘Test Send Emails’ folder. Check to see if the job has been completed, and the number of Emails Sent equals the number you’re expecting.
Test Sends emulate the exact sending and email build process for the selected subscribers but is instead sent to the specified email address.
Check the following to identify why a subscriber wasn’t sent the email.
More information can be found in our Marketing Cloud Engagement Send Preview or Test Sends Don’t Arrive in Inbox Knowledge Article.
Triggered Sends are slightly different than a Data Extension or List send as they’re generally created through an action a Subscriber has taken and are more transactional. Triggered Emails in Email Studio involve using either the SOAP or REST API , adding another layer of complexity when troubleshooting whether a Send was successful.
Check the following to identify why a subscriber wasn’t sent the email from a Triggered Send.
These points are for Triggered Emails in Email Studio, not the new Transactional Messaging API .
More information can be found in the Marketing Cloud Engagement Triggered Send Not Sent to Subscriber Knowledge Article.
Automation Studio can be used to schedule a recurring Email to be sent on a regular cadence and to different Subscribers. Check the following to identify why a subscriber wasn’t sent the email.
As email Sends via Automation Studio are repeat sends to the same Audience, the same points to check for Sends to Lists or Data Extensions are applicable after you've reviewed the Automation has completed successfully.
More information can be found in the Email Send via Automation Studio Doesn’t Send to All Subscribers Knowledge Article.
Journey Builder sends use the Triggered Send method of sending, so consider the points in the Email to Triggered Send section and the following points. Both Multi-step and Single Send Journeys use Triggered Sends, but multi-step Journeys may allow you to review more information outlined in the following points.
When your Marketing Cloud Engagement email send count is lower than your audience count, start by locating the JobID in Email Studio Tracking — this is the unique identifier that ties all send-level tracking data together and is your anchor for every troubleshooting step below:
000389518

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.