Skip to content

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

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.

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).

HTTP 409 · already_undone
{
"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.

SDK Raised as
TypeScript (@deedglass/sdk) InvalidRequestError with code === "already_undone"
Python (deedglass) deedglass.InvalidRequestError with .code == "already_undone"