Skip to content

yaml_too_complex

A policy diagnostic from deedglass policy lint and the policy routes.

Severity: error

The YAML nests more than 32 levels deep, or has more than 50,000 nodes (every key, value and list entry is a node). A real policy needs a few levels and a few thousand nodes; the limits keep the compiler fast on any input.

deedglass: policy/v1
name: refunds
defaults:
decision: deny
reason: No rule allows this action.
rules:
- id: deep
decision: allow
match:
labels: [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
✕ policy.yaml:10:43 · yaml_too_complex
This policy nests more than 32 levels deep.
hint: Flatten the structure; a policy needs only a few levels.

A file with more than 50,000 nodes gets a different message, at the node where counting stopped:

✕ policy.yaml:731:79 · yaml_too_complex
This policy has more than 50,000 YAML nodes; the limit is 50,000.
hint: Split it into smaller policies, or replace repeated rules with globs.

Fix: flatten the structure, and replace repeated rules with globs, like match: { tool: "stripe.*" }.