Reject text: could not perform self call

What does above error msg mean?

It probably means that you’ve issued too many calls to self before doing an await or exiting the shared function. There is a limit per destination canister.

I think the limit is 500 message to another canister but maybe still only 250 to self. Every async expression counts as a call to self.