already_undone
Another undo of the same action already holds its one live slot: it was applied, or it is waiting for approval or running.
HTTP 409 · invalid_request_error · not retryable
What happened
Section titled “What happened”Another undo of the same action already holds its one live slot: it was applied, or it is waiting for approval or running. At most one live undo per action is a unique index, so two requests at once get one action and one already_undone. A denied, expired, cancelled or failed undo frees the slot.
What to do
Section titled “What to do”Look at the action’s undo object (undone_by, pending). To put back an undo, preview an undo of the undo action itself (a redo).
Example
Section titled “Example”{ "error": { "type": "invalid_request_error", "code": "already_undone", "message": "act_01j9zw6k… was already undone by act_01j9zx8m… at 10:14 IST.", "param": null, "request_id": "req_01j9zr3m5k8q2w7x4t6v0b1c9d", "doc_url": "https://docs.deedglass.com/errors/already_undone" }}The message is for a person and can get more exact over time: branch on type and code, never on the message.
In the SDKs
Section titled “In the SDKs”| SDK | Raised as |
|---|---|
TypeScript (@deedglass/sdk) |
InvalidRequestError with code === "already_undone" |
Python (deedglass) |
deedglass.InvalidRequestError with .code == "already_undone" |