Skip to content

Workflow If/Else: if only one of the branches has intermediate step, the next steps are skipped and run stops #24060

Description

@ClaireGz

Summary

When an If/Else has a step that is shared by both branches (a merge / convergence node) — i.e. the merge node is the direct target of one branch and is reached downstream of the other branch — that merge node (and everything after it) is silently SKIPPED when the other branch is taken. The run then reports COMPLETED, so it looks successful while having done nothing past the branch.

See test example here:

Image

Minimal reproduction (3 nodes)

Structure:

If/Else
  ├ (branch A)  → Update Record #1 → Update Record #M
  └ (branch B / else) ───────────────→ Update Record #M      (#M is shared by both)

Trigger so that branch A is taken.

Actual (run steps):

  • If/Else → SUCCESS
  • Update Record #1 (on branch A) → SUCCESS
  • Update Record #M (shared merge) → SKIPPED
  • Run status → COMPLETED

So the branch that was taken ran its first step, then the shared node was skipped even though branch A flows into it.

Expected: Update Record #M runs (it is reachable from the taken branch). The run should reflect that the merge node executed.

Workaround

A workaround that can be used is this. We add an intermediate fake step for "else" so it's not skipped by the "if"

Image

Expectd behaviour

We should be able to have if / else with only a step for the if but not for the else (and other way around)

Metadata

Metadata

Assignees

Labels

Type

Fields

Priority

None yet

Dev status

None yet

Start date

None yet

Target date

None yet

Quarter

None yet

Projects

Status
In project

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions