Make mutations idempotent
Every Start, Update, Approve, and Stop mutation requires a stablerequestId. If the response is lost, retry the identical request with the same ID. Do not create a new ID until the logical mutation changes.
Recover from the action ID
PersistactionId before rendering the next screen. After a timeout or client restart, call Get action. Do not start a replacement Action merely because the previous response was delayed.
Retry by status
Monitor without leaking secrets
Record operation, latency, status,actionId, requestId, and Darwin’s response correlation ID. Do not log API keys, OAuth tokens, provider credentials, payment data, or unredacted sensitive inputs.
See Rate limits and Errors for shared transport behavior.