Skip to content

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

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

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.

HTTP 403 · policy_unavailable
{
"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.

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