agent_suspended
Step 8: the key is valid, and its agent is suspended, a planned pause.
HTTP 403 · permission_error · not retryable
What happened
Section titled “What happened”Step 8: the key is valid, and its agent is suspended, a planned pause.
GET /v1/whoami still answers and shows "status": "suspended". The message never says why or
by whom.
On POST /v1/actions the attempt is still recorded: the action goes
evaluated → denied → sealed with the stop decision (decision.source: stop), and the envelope
carries the sealed action in error.action. The Ledger shows what a stopped agent tried to do. An
action that waits for approval is checked again when someone approves it: if the agent or org is
stopped by then, it ends denied the same way and never runs.
What to do
Section titled “What to do”An admin can resume the agent in Console › Agents, or with
deedglass agent resume <name>. If you didn’t expect the suspension, check the agent’s
agent.suspended deed first.
Example
Section titled “Example”{ "error": { "type": "permission_error", "code": "agent_suspended", "message": "Agent \"support-bot\" is suspended. An admin can resume it in Console › Agents.", "param": null, "request_id": "req_01j9zr3m5k8q2w7x4t6v0b1c9d", "doc_url": "https://docs.deedglass.com/errors/agent_suspended" }}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) |
PermissionDeniedError with code === "agent_suspended" |
Python (deedglass) |
deedglass.PermissionDeniedError with .code == "agent_suspended" |