Notice this exists inside a file called "context.py" inside the RobotFramework library. You can probably modify the threshold, but it seems like it was added to prevent recursive keywords from tanking the test run.
Also note that in my environment I have two copies of context.py, but I suspect the one in build is the relevant one, not the one in src:
Bens-MacBook-Pro-2:robotframework-2.8.6 benfariello$ find . -name context.py
./build/lib/robot/running/context.py
./src/robot/running/context.py
class _ExecutionContext(object):
_started_keywords_threshold = 42 # Jython on Windows don't work with higher
...
def start_keyword(self, keyword):
self._started_keywords += 1
if self._started_keywords > self._started_keywords_threshold:
raise DataError('Maximum limit of started keywords exceeded.')
self.output.start_keyword(keyword)