Ad platform error codes
Every error code the Ad platforms pages can show, what causes it and how to fix it.
Codes appear in connection checks, in Last check failed on a connection, in the Calls view and in messages beside audiences. Find your code in the table that matches where you saw it. For symptoms without a code, see Troubleshoot ad platforms.
Platform errors
These come from the check run when you connect, from Check again, from the 6 hour health check, or from the platform's reply to a send.
| Code | Cause | Fix |
|---|---|---|
TOKEN_EXPIRED |
The platform no longer accepts the saved sign-in, token or secret | Reconnect. See Fix connection errors and reconnect. For Meta tokens, generate a new one first |
META_PERMISSION_MISSING |
The Meta token cannot send events to this dataset | Generate a token for the dataset itself in Events Manager |
META_TOS_NOT_ACCEPTED |
The Meta ad account has not accepted the custom audience terms | Select Fix it in Meta, accept the terms, then run the check or sync again |
META_APP_FIELDS_MISSING |
The Meta app is missing details it needs for app events | Complete the app's details in Meta, then check again |
GOOGLE_DEV_TOKEN_TEST_ONLY |
The developer token only has test access, so Google refuses real accounts | Apply for a higher access level in the Google Ads API Center, or connect a test account. See Connect Google Ads |
GOOGLE_CONFIG_ERROR |
Google rejected the OAuth client or developer token. On a connection made with a sign-in, Google is not fully set up on the TrueEngage side | Check the client ID, client secret and developer token. For a sign-in connection, contact TrueEngage support |
GOOGLE_SCOPE_MISSING |
The Google sign-in did not grant every permission | Connect again and keep every permission ticked |
GOOGLE_CUSTOMER_MATCH_NOT_ELIGIBLE |
The Google Ads account cannot use Customer Match yet | Check its eligibility in Google Ads, which depends on spend and history |
ADS_RECONNECT_CREDENTIALS_REJECTED (on connect) |
For Google Ads, Snap Ads and X Ads, the credentials were checked before saving and the platform refused them. Nothing was saved | Check that the values come from the same app and were copied in full, then connect again |
GA4_VALIDATION_FAILED |
GA4's validation endpoint rejected an event | Read the message in Calls. It names the field. Fix the event name, value or ids |
PLATFORM_REJECTED |
The platform refused the request, for example for an account you cannot access, or an event name it does not allow | Connect with a user that has access, or change the destination event |
PLATFORM_UNAVAILABLE |
The platform is busy or unreachable | Nothing to do. TrueEngage retries. Check again in a few minutes |
DELIVERY_UNKNOWN |
A request to a platform with no dedupe key timed out, so it may have arrived | None. TrueEngage does not retry, to avoid a duplicate. The delivery shows as failed |
NOT_SUPPORTED |
The connection cannot do this, for example audiences on a token connection, or the platform did not accept a test event | Connect with a platform sign-in for audiences. For a test event, check the dataset ID and test code |
NO_IDENTIFIERS |
Nobody in the segment, or no one in the batch, has anything to match on | Tick another identifier, or wait for more users to have an email, phone or device ID |
AUDIENCE_TOO_SMALL |
Fewer people matched than the platform minimum | Wait for the audience to grow. See Sync segments to ad audiences |
EVENT_ID_UNRESOLVED |
The event ID pattern needs a property the event does not have | Fix the pattern or send the property. See Avoid duplicate events with your browser pixel |
Sign-in and connect errors
| Code | Cause | Fix |
|---|---|---|
OAUTH_NOT_CONFIGURED |
Connecting with Google or Meta is not set up on this server | Contact TrueEngage support |
OAUTH_STATE_INVALID |
The sign-in link is invalid, expired, or opened in another browser | Start again from Ad platforms in the same browser |
OAUTH_TOKEN_REJECTED |
The platform did not accept the sign-in | Sign in again and allow access to your ad account |
ADS_PENDING_CREDENTIAL_INVALID |
The sign-in expired (after 15 minutes) or was already used | Sign in again |
ADS_PLATFORM_UNAVAILABLE |
The platform could not list your accounts right now | Try again in a moment |
ADS_CONNECTION_EXISTS |
This platform already has a connection in this environment. Each environment holds one connection per platform | Open the existing connection, or remove it before you connect another |
ADS_RECONNECT_ACCOUNT_MISMATCH |
The sign-in cannot reach the account this connection uses | Sign in with a user that has access to that account |
ADS_RECONNECT_CREDENTIALS_REJECTED |
The platform did not accept the new credentials. Nothing changed | Check the value and try again |
ADS_CONNECTION_DISABLED |
The connection is disabled | Enable it before you reconnect |
ADS_CONNECTION_NOT_FOUND |
The connection was disconnected, or the link is wrong | Open Ad platforms and pick a connection |
ADS_CONNECTION_NOT_ACTIVE |
The connection is not active | Reconnect or enable it, then try again |
ADS_TEST_EVENT_CODE_REQUIRED |
Test mode, or a Meta test send, needs a test event code | Enter the code from the Test events tab in Events Manager |
CONFIRMATION_REQUIRED |
A change to share every user with ad platforms needs a typed confirmation | Send the confirmation phrase with the request |
Mapping errors
| Code | Cause | Fix |
|---|---|---|
ADS_MAPPING_EXISTS |
This connection already maps that event to that destination | Edit the existing mapping |
ADS_MAPPING_NOT_FOUND |
The mapping was deleted | Reload the Conversions tab |
ADS_VALUE_PROPERTY_REQUIRED |
The destination needs an amount | Choose the Value property on the Details tab |
ADS_INVALID_EVENT_ID_TEMPLATE |
The pattern uses something other than {{event.id}}, {{user.external_id}} or {{properties.name}}, or has no value in braces |
Fix the pattern |
ADS_NO_MATCHING_EVENT |
No event with a known user matches the mapping yet, so there is nothing to test | Trigger the event for a known user, then test again |
Audience errors
| Code | Cause | Fix |
|---|---|---|
ADS_AUDIENCE_SYNC_EXISTS |
This segment already syncs to that ad account | Edit the existing audience |
ADS_AUDIENCE_SYNC_NOT_FOUND |
The audience was deleted | Refresh the list |
ADS_AUDIENCE_SYNC_NOT_RUNNABLE |
The audience is paused, waiting for a reconnect, or being removed | Resume it or reconnect first |
ADS_AUDIENCE_SYNC_RUN_IN_PROGRESS |
A run is already queued or running | Wait. The row updates by itself |
ADS_AUDIENCE_ENQUEUE_FAILED, ENQUEUE_FAILED |
The run could not be queued. Nothing was sent | Select Run now again |
ADS_PREVIEW_TOO_SLOW |
The segment is too large to count right now | Try again. You can start syncing without the numbers |
IDEMPOTENCY_KEY_REQUIRED, IDEMPOTENCY_KEY_REUSED |
The run request could not be recognised | Reload the page and try again |
Run result codes
A run that ends with a code shows it in the audience row.
| Code | Cause | Fix |
|---|---|---|
STALLED |
The run made no progress for 10 minutes, for example because a worker restarted | Select Run now |
SYNC_BUSY_TIMEOUT |
Another run kept the audience busy for too long | Select Run now |
NOT_RUNNABLE |
The connection or audience became unusable before the run started | Reconnect or resume, then run again |
SUPERSEDED |
A queued run waited too long and was replaced | Select Run now |
INTERNAL |
An unexpected error on the TrueEngage side | Run again. If it repeats, contact support |
REMOVAL_UNRESOLVABLE |
Some people could not be removed because their data is gone. This is a warning | Remove them on the platform if you must |
Flow step errors
These appear when you validate or publish a flow with an Ad audience step.
| Code | Cause | Fix |
|---|---|---|
FLOW_AD_AUDIENCE_MISSING |
No audience or action is chosen | Pick both in the step panel |
FLOW_AD_AUDIENCE_NOT_FOUND |
The audience was deleted, is being deleted, or belongs to another environment | Pick another audience |
FLOW_AD_AUDIENCE_NOT_FLOW |
The audience follows a segment | Pick or create an audience made for flows |
FLOW_AD_AUDIENCE_CONNECTION_INACTIVE |
The ad account behind the audience is not active | Reconnect it in Ad platforms |
FLOW_AD_AUDIENCE_FORBIDDEN |
You lack View on Ad platforms | Ask an admin for access |
Why an event was skipped
A skipped event has a reason, not a code. See Why an event is skipped.
Was this page helpful?