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.
| Field | Meaning |
|---|---|
errorMessage | Details recorded for that failed attempt |
errorCategory | A readable label derived from message patterns; also supported as a list filter |
errorClass | The stored delivery classification listed below, or null on an unclassified legacy row |
retryable | Whether Flex supports manual retry for this platform and the failure policy allows it; it is not a promise that another attempt will succeed |
reprocessedAt | When 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
| Class | Meaning and next step |
|---|---|
PERMANENT_DATA | Data 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_CONFIG | A destination or configuration issue. Repair the account, event or conversion target before expecting recovery to succeed. |
AUTH | Authentication or permission failure. Restore the connection/access first. |
RATE_LIMITED | The platform asked Flex to slow down. Worker retries use backoff and honor a supported advertised delay within Flex's cap. |
TRANSIENT | A temporary transport or platform failure. The worker retries with backoff. |
RETRY_AFTER_DELAY | The conversion may become eligible later. Its supported recovery path retains the original conversion identity and time. |
DUPLICATE | Treated as delivered for delivery settlement; Flex does not resend it as a new conversion. This alone does not establish attribution credit. |
UNCLASSIFIED | An 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.