How to resolve this error

The code I have done is followed below:

    is_beneficiary = fields.Function(fields.Boolean(
        'Is Beneficiary'), 'on_change_is_beneficiary')
    @fields.depends('is_beneficiary', 'bank_branch')
    def on_change_is_beneficiary(self, name=None):
        if self.is_beneficiary:
            if (self.bank_branch is None):
                self.raise_user_error('Bank Details Need to be Filled')
            else:
                return self.is_beneficiary

On executing the above code error is showing:
RecursionError: maximum recursion depth exceeded while calling a Python object

It better to separate on_change with the function method.

Using get_is_beneficianry will be better.

And you may consider for the bank details field using states to check boolean if true then required. It will be much more simpler

The problem is you are using “is_beneficiary” value in the method that computes “is_beneficiary” value. So it gets on an infinite loop.

Also you can not raise error in an on_change* method.