Skip to content

approval_expired

A person tried to countersign or deny after the approval’s expires_at.

HTTP 409 · invalid_request_error · not retryable

A person tried to countersign or deny after the approval’s expires_at. Timeout means no: nothing ran, and the expiry sweeper seals the action as expired with no decider. POST /v1/actions doesn’t use this code: an agent learns about the expiry from the action’s status: expired (or deedglass.check_approval).

Nothing runs on its own. If the action is still needed, ask the agent to send it again: that asks for a new approval.

HTTP 409 · approval_expired
{
"error": {
"type": "invalid_request_error",
"code": "approval_expired",
"message": "This approval expired at 10:41 IST. Nothing ran. Ask the agent to try again if it's still needed.",
"param": null,
"request_id": "req_01j9zr3m5k8q2w7x4t6v0b1c9d",
"doc_url": "https://docs.deedglass.com/errors/approval_expired"
}
}

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 === "approval_expired"
Python (deedglass) deedglass.InvalidRequestError with .code == "approval_expired"