fix: Do not allow conditional execution on Subgraph Nodes + Validations - #2658
Open
camielvs wants to merge 1 commit into
Conversation
🎩 PreviewA preview build has been created at: |
3 tasks
Collaborator
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
3 tasks
camielvs
force-pushed
the
08-20-fix_do_not_allow_conditional_execution_on_subgraph_nodes
branch
from
August 21, 2026 16:52
2f04588 to
8fe1221
Compare
camielvs
force-pushed
the
08-20-feat_finalize_conditional_execution
branch
from
August 21, 2026 16:52
325c67e to
2d0ce95
Compare
camielvs
force-pushed
the
08-20-fix_do_not_allow_conditional_execution_on_subgraph_nodes
branch
2 times, most recently
from
August 21, 2026 17:26
07f8fcc to
f194b0e
Compare
camielvs
marked this pull request as ready for review
August 21, 2026 17:26
Mbeaulne
reviewed
Aug 21, 2026
Mbeaulne
reviewed
Aug 21, 2026
camielvs
force-pushed
the
08-20-fix_do_not_allow_conditional_execution_on_subgraph_nodes
branch
from
August 21, 2026 22:10
f194b0e to
b4fefab
Compare
camielvs
force-pushed
the
08-20-fix_do_not_allow_conditional_execution_on_subgraph_nodes
branch
from
August 21, 2026 22:55
b4fefab to
f389987
Compare
camielvs
force-pushed
the
08-20-feat_finalize_conditional_execution
branch
from
August 21, 2026 22:55
2d0ce95 to
20b5ec3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Conditional execution only works on tasks that run a container. The backend rejects it on subgraphs, so a pipeline that gates one fails at submission with a raw error the user can't act on.
The control is hidden for subgraphs. The Conditional execution box no longer appears when the selected node is a subgraph, so it can't be switched on by accident.
Validation covers what hiding the control can't. A pipeline can arrive with the condition already set — from the SDK, from hand-written YAML, or from an earlier version of the editor. A subgraph with a run condition is now flagged as an error that blocks submission, with a Remove Condition fix offered in the issue panel.
Three related checks, since the same panel was already open:
__is_enabled__collides with the name the editor reserves for run conditions. Connecting such an input would silently save it as the task's run condition and drop the argument. It's a warning as soon as the component is used, and an error once the input is actually connected.yes, or a value the editor can't make sense of — is an error, and the message quotes the offending value. Casing and stray whitespace are fine. A condition that's wired up rather than fixed is left alone, since its value isn't known until the run.Related Issue and Pull requests
Stacked on #2657.
Type of Change
Checklist
Screenshots (if applicable)
Test Instructions
The
conditional-executionflag is off by default — turn it on in Settings first.yes. You should get an error quoting that value. Change it toTRUEorfalseand it should be accepted.Additional Comments
The reserved-name check is a guard against a name collision rather than something a user is likely to hit — a component would have to declare an input called
__is_enabled__. It's here because the failure is silent: the argument disappears on save with nothing to indicate why.The type check accepts
str,boolandtextalongside the canonical type names. Since it blocks submission, a hand-written component using a lowercase alias shouldn't be caught by it.One thing deliberately not done: the accepted conditions aren't normalized on load. The checks read leniently but write nothing — quietly rewriting a value in someone's pipeline is worse than reporting it.