policy_unavailable
Deedglass could not evaluate the policy for this action: no policy was loaded, the evaluator failed, or evaluation ran past its time limit (50 ms by default).
HTTP 403 · policy_error · not retryable
What happened
Section titled “What happened”Deedglass could not evaluate the policy for this action: no policy was loaded,
the evaluator failed, or evaluation ran past its time limit (50 ms by default). The action did not
run. It is always a deny, so a broken or slow policy never lets an action through. On
POST /v1/actions the refusal is recorded and sealed, and the envelope carries the sealed action
in error.action. Every trip of the time limit also counts in
deedglass_policy_eval_time_limit_total and is logged at warn level with the org and agent
(OBSERVABILITY.md).
What to do
Section titled “What to do”An admin checks the active policy in Console › Policies. The action’s trace names the rule that was being evaluated when the time ran out. Send the action again once the policy is fixed.
Example
Section titled “Example”{ "error": { "type": "policy_error", "code": "policy_unavailable", "message": "Deedglass could not evaluate the policy for this action, so it did not run. An admin can check Console › Policies.", "param": null, "request_id": "req_01j9zr3m5k8q2w7x4t6v0b1c9d", "doc_url": "https://docs.deedglass.com/errors/policy_unavailable" }}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) |
PolicyDeniedError with code === "policy_unavailable" |
Python (deedglass) |
deedglass.PolicyDeniedError with .code == "policy_unavailable" |