Skip to content

cel_not_int

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

Severity: error

A budget’s measure returns something other than a whole number. A spending budget counts minor units, so measure must return an int (or dyn, which is checked at run time).

deedglass: policy/v1
name: refunds
defaults:
decision: deny
reason: No rule allows this action.
budgets:
- id: refunds-per-day
match: { tool: stripe.create_refund }
per: org
window: day
max_spend: "500.00 usd"
measure: string(args.amount)
✕ policy.yaml:12:14 · cel_not_int
measure must be a whole number of minor units; this expression returns a string.
hint: Return an int, like args.amount, or guard it: has(args.amount) ? args.amount : 0

Fix:

measure: args.amount