rego_type_error: {built-in name}
arity mismatch
Arity is a term used to describe the number of arguments a function takes. This error happens when one of Rego's built-in functions is called with an unexpected number of arguments - the wrong arity.
This message is only shown for Rego's built-in functions, not for user-defined functions. For
errors containing has arity n, got m argument(s)
see this section.
Stage | Category | Message |
---|---|---|
compilation | rego_type_error | {built-in name} arity mismatch |
Examples
In the following example, the
split
function is called with two arguments, but it only takes one:
package policy
import future.keywords.if
import future.keywords.in
allow if "admin" in split("admin,member")
When compiled, this will result in the following error:
1 error occurred: policy.rego:6: rego_type_error: split: arity mismatch
have: (string, ???)
want: (x: string, delimiter: string)
How To Fix It
In order to find the built-in function that is causing this error, you can find the line number in the error message. E.g. in the example above, the error message says:
policy.rego:6: rego_type_error: split: arity mismatch
^ ^ ^
file line number built-in function
Here, the line number is 6
and the built-in function is split
.
Once you have found the built-in function, you can look up its expected arguments and arity in the 'Policy Reference' documentation.
Community
For questions, discussions and announcements related to OPA, or Styra products, services and open source projects, please join the Styra Community on Slack.