undo_plan_stale
The plan_digest you sent isn’t the plan Deedglass builds now: the rows, the catalog or the evidence changed since you previewed.
HTTP 409 · invalid_request_error · not retryable
What happened
Section titled “What happened”The plan_digest you sent isn’t the plan Deedglass builds now: the rows, the catalog or the evidence changed since you previewed. The Gate’s undo executor checks the digest again right before it runs, so a stale plan never runs; that failure is recorded as the undo action’s execution.error_code.
What to do
Section titled “What to do”Preview the undo again and use the new plan_digest.
Example
Section titled “Example”{ "error": { "type": "invalid_request_error", "code": "undo_plan_stale", "message": "The rows changed since you previewed this undo. Preview it again and use the new plan.", "param": "plan_digest", "request_id": "req_01j9zr3m5k8q2w7x4t6v0b1c9d", "doc_url": "https://docs.deedglass.com/errors/undo_plan_stale" }}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 === "undo_plan_stale" |
Python (deedglass) |
deedglass.InvalidRequestError with .code == "undo_plan_stale" |