idempotency_key for every logical send. Reusing it for a retry
returns the original action instead of creating a second billable submission.
Retry rules
- Retry transient
429and503responses only after the indicated delay. - Preserve the same idempotency key and payload.
- Do not retry authentication or validation failures unchanged.
- Do not create a new key to bypass a pending
QUEUEDaction. - Treat a conflicting payload for an existing key as an integration error.
Retry-After, reset_at, and
next_step fields when returned.
Never dispatch a second copy because a status poll timed out. Poll the existing
action_id before deciding whether any retry is safe.