Skip to content

duplicate_id

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

Severity: error

Two rules, two budgets, or a rule and a budget share an id. Budgets and rules share one set of ids, so a decision always names exactly one of them.

deedglass: policy/v1
name: refunds
defaults:
decision: deny
reason: No rule allows this action.
rules:
- id: refunds
match: { tool: stripe.create_refund }
when: args.amount <= minor("50.00 usd")
decision: allow
- id: refunds
match: { tool: stripe.create_refund }
decision: require_approval
reason: Refunds over $50.00 wait for a person.
✕ policy.yaml:11:9 · duplicate_id
Rule id "refunds" is used twice (first on line 7).
hint: Give each rule its own id.

Fix: give each rule its own id, like small-refunds and large-refunds.