Skip to main content

Delivery Errors and Retry Status

A failed-conversion response includes the platform's errorMessage, a readable errorCategory, a nullable errorClass, and retryable. Use the Google Ads failed-conversion example for the shared response envelope and pagination. Other platform guides link to the same shape.

FieldMeaning
errorMessageDetails recorded for that failed attempt
errorCategoryA readable label derived from message patterns; also supported as a list filter
errorClassThe stored delivery classification listed below, or null on an unclassified legacy row
retryableWhether Flex supports manual retry for this platform and the failure policy allows it; it is not a promise that another attempt will succeed
reprocessedAtWhen a failed row was marked for reprocessing, or null; it does not prove successful delivery

errorClass: null differs from UNCLASSIFIED: null means no class was stored; UNCLASSIFIED means classification ran but no more specific rule matched. The Dashboard displays null as Not classified. errorClass is a response field, not an additional failed-list query filter.

Error classes​

ClassMeaning and next step
PERMANENT_DATAData that cannot succeed unchanged, such as an expired conversion or invalid identifier. Automatic recovery and manual retry are disabled. Correct the source problem; repeatedly sending the same payload will not repair it.
REPAIRABLE_CONFIGA destination or configuration issue. Repair the account, event or conversion target before expecting recovery to succeed.
AUTHAuthentication or permission failure. Restore the connection/access first.
RATE_LIMITEDThe platform asked Flex to slow down. Worker retries use backoff and honor a supported advertised delay within Flex's cap.
TRANSIENTA temporary transport or platform failure. The worker retries with backoff.
RETRY_AFTER_DELAYThe conversion may become eligible later. Its supported recovery path retains the original conversion identity and time.
DUPLICATETreated as delivered for delivery settlement; Flex does not resend it as a new conversion. This alone does not establish attribution credit.
UNCLASSIFIEDAn unmatched error requiring investigation. It is not automatically considered permanent. Recovery depends on the platform's available path.

Worker retries, scheduled recovery and manual retry are separate mechanisms. A class that allows recovery does not imply that every platform implements the same recovery path. Read retryable rather than deriving a retry button solely from the class. Always check the latest submission/conversion result: a stored failed attempt may remain after a later successful delivery.

Supported failed-row lists​

The failed-list platform keys are google, meta, tiktok, reddit, linkedin, bing, openai, vibe and twitter. Existing API-key permissions and client scoping still apply; a listed platform does not grant access to another client's data.

X (twitter) currently exposes failures for diagnosis only. It has no corresponding successful-send conversion table, manual retry endpoint or submission linkage. A submission-filtered X query returns no rows, and X rows report retryable: false and reprocessedAt: null. Vibe also has no supported manual retry endpoint. Do not interpret retryable: false as proof that every such failure is permanent data.

Resends and late results​

Follow duplicate submissions and resends before sending another copy. A new submission is not a command to bypass delivery identity. For Google, a confirmed later upload can settle a claim previously marked failed; Data Manager acceptance alone waits for a matching delivery result. Contact support about an unresolved delivery rather than changing the event identity or timestamp to force another send.