Skip to content

fix: argo 3.7.11 conditional input paths - #3344

Open
saikonen wants to merge 3 commits into
masterfrom
fix/argo-3.7.11-conditional-input-paths
Open

saikonen wants to merge 3 commits into
masterfrom
fix/argo-3.7.11-conditional-input-paths

Conversation

@saikonen

Copy link
Copy Markdown
Collaborator

PR Type

  • Bug fix

Summary

Fixes an issue with step input-paths from conditionals not working on argo 3.7.11+/4.0.2+

Issue

Fixes #3043

AI Tool Usage

Claude Code used for test cases and fix iteration

@saikonen
saikonen requested a review from talsperre August 18, 2026 09:45
@saikonen
saikonen marked this pull request as ready for review August 18, 2026 18:35
@greptile-apps

greptile-apps Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR updates Argo conditional execution so skipped branches expose resolvable outputs and downstream tasks include only predecessors that actually ran.

  • Adds Steps wrappers and should-run outputs for conditional nodes.
  • Reworks dependency, when, and input-path expressions for nested and sequential conditionals.
  • Filters Argo’s SKIPPED sentinel from conditional input paths.
  • Adds regression coverage and updates the local Argo environment to v3.7.11.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains within the eligible follow-up review scope.

No blocking failure remains.

Important Files Changed

Filename Overview
metaflow/plugins/argo/argo_workflows.py Introduces conditional Steps wrappers, stable skipped-branch outputs, and revised dependency and input-path generation for newer Argo releases.
metaflow/plugins/argo/conditional_input_paths.py Excludes the explicit /SKIPPED sentinel when selecting executed predecessor pathspecs.
test/unit/test_argo_conditional_input_paths.py Adds focused coverage for skipped sentinels and fallback path selection.
test/unit/test_argo_nested_conditional_join.py Expands regression coverage for nested, sequential, and recursive conditional gating.
devtools/Tiltfile Updates the local Argo chart and controller defaults to exercise Argo Workflows v3.7.11.

Reviews (3): Last reviewed commit: "fix: exclude foreach joins from wrapped_..." | Re-trigger Greptile

@saikonen
saikonen force-pushed the fix/argo-3.7.11-conditional-input-paths branch from f560ef2 to 920f9fa Compare August 21, 2026 21:28
Foreach-join DAGTasks are built via a separate code path in
_dag_templates() that never wraps the join node, so including them in
the precomputed wrapped_conditional_nodes set caused their container
template to be renamed to a cond-* name the DAGTask never references,
producing "template name ... undefined" deploy errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@Shriprasad-P Shriprasad-P left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

PR: fix: argo 3.7.11 conditional input paths

Touched: devtools/Tiltfile, metaflow/plugins/argo/argo_workflows.py, metaflow/plugins/argo/conditional_input_paths.py, test/unit/test_argo_conditional_input_paths.py, test/unit/test_argo_nested_conditional_join.py

  • Addresses a concrete correctness/reliability issue based on the title and diff.
  • CI/tooling change — confirm the pipeline still passes on this branch.
  • Diff is fairly large (+632/-156); a short summary of risk areas from the author would help reviewers.

Commenting as a drive-by reviewer after reading the diff. Happy to look again if maintainers want a deeper pass on a specific file.

@Gsbreddy

Gsbreddy commented Sep 21, 2026

Copy link
Copy Markdown

Wanted to share some field validation for this fix.

We (Delivery Hero, running Metaflow on Argo Workflows at scale) hit exactly the issue this PR fixes (#3043) while validating an Argo Workflows v3.7.11→v4.1.4 upgrade. We reproduced the conditional-branch failure cleanly on both v3.7.15 and v4.1.4 (unable to substitute {{tasks.X.outputs...}}: output is an absent optional), then pinned our Metaflow install to this branch's commit (326d90a) and re-ran the same repro on both versions — conditional branching now completes successfully on both, with the new cond- wrapped Steps templates showing up as expected in the compiled DAG.

This is a real blocker for anyone upgrading past Argo Workflows v3.7.11/v4.0.2, so it'd be great to see this land.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Conditional branching broken on Argo Workflows v3.7.11+ / v4.0.2+

3 participants