6c1db2e7fb
When an If/Else branch skips an Iterator step (because the branch wasn't taken), the executor incorrectly entered the iterator's loop body. This happened because getNextStepIdsToExecute checked !hasProcessedAllItems on an undefined result, which evaluated to true, causing it to return initialLoopStepIds instead of the post-loop nextStepIds. Fix: Add a !executedStepOutput.shouldSkipStepExecution guard to the iterator condition in getNextStepIdsToExecute, consistent with the existing shouldFailSafely guard.