The ANSIProgressRenderer may fail to display the correct result if the ProgressTracker steps tree contains identical steps. This can happen if a flow executes similar actions more than once by delegating to the same sub flow repeatedly, or if multiple sub flows inherit from a single one defining the progress tracker for both. An example of this situation can be seen in CashIssueAndPaymentFlow.
Current known problems:
With CashIssueAndPaymentFlow, some steps in the flow will appear to be completed, before the flow skips backwards again - this happens because after the issuance flow, the payment progress tracker overwrites the issuance tracker. However, as some steps are identical, the renderer fails to clear them. The output is shown in the attachment
Attempting to fix the above by introducing intermediate steps doesn't work, as steps are identified by (level, label), and not by index. As there are some (level, label) duplicates, when the step tree changes the renderer cannot establish which steps have been executed and which have not.