Regression: The "failure" operation if condition type is not working as intended.
The documentation and specification is out of date and refers to this as "fail".
This is instead the word "failure".
This is also different from the setting "fail" that designates what to do on failure.
With one of the recent re-designs of the process logic, the failure status is no longer being passed.
When the "fail" setting is set to "warn" or "ignore", the status code of F_none is returned.
Change the return status to "F_failure" without the error bit to designate that this is a failure but it is not being treated as an error due to the state of the "fail" setting.
Then process the "F_failure" without the error bit to remember the state that a failure occurred.
This then allows for the "failure" if condition type to get triggered.
The recent if/else logic changes introduced behavior where a failure in the processing of the if/else commands should also trigger the "failure" if condition type.
This failure is not associated with the if condition results.
When an if condition results in either true or false, then this is considered a "success" rather than a "failure".
Generally, syntax failures are what trigger the "failure" state.
Programs that are executed, such as when using the "run" operation, will result in "failure" if a non-zero value is returned by the program.