code, detail, and request_id. The response also includes an X-Request-ID header. Keep the request ID for support; exclude API keys and participant tokens from logs.
Safe launch retries
Generate the attempt key once, before your first request. Persist it with the intended operation if a retry can happen in a later server request.attempt() again with bounded backoff for retryable network or service failures. Do not change the body or attempt ID during those retries. A timeout can occur after the service accepted a request.
Use a new key for a deliberately new conversation. Correct validation and permission problems before retrying; repeatedly sending the same invalid request will not fix them.