Skip to main content

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.

note

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.

StageCategoryMessage
compilationrego_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.