A recursive action should generate compile warning and runtime error.
An action which calls itself can be valid code. However, it is likely to be an error, which would result in downtime if called.
In TrueChange:
Suggest a warning should be displayed in TrueChange if a Logic action calls itself. This is possibly an error, but also could be valid.
Suggest an error should be displayed in TrueChange if a Logic action calls itself without any other code. This is definitely an error.
At runtime:
Suggest a maximum number of recursions should be a configurable platform item. Or if not, it is set high enough not to cause issues with valid code, but low enough that an error may be generated before the stack generates an error.
When an action is recursed more than the maximum number of recursions an exception is thrown with the name of the action saying the action has exceeded the maximum number of recursions.
It would be great if this could handle cyclic calls involving multiple actions at runtime. It would be amazing if that could be determined at compile time.