Open LambdaWs opened 4 weeks ago
Hello @LambdaWs! I'm here to help you with any bugs, questions, or contributions you have for Dify. Let's work together to solve this issue.
I found a similar discussion regarding issues with parallel execution in workflows. In version 0.8.0, there was a problem where the issue classifier was treated as a parallel execution branch, which might be related to the problem you're experiencing [1]. You might want to check that discussion for any insights or updates that could help resolve your issue.
To continue talking to Dosu, mention @dosu.
I also encountered the same problem. When I run six nodes in parallel, with two nodes in each group connecting to the next LLM node or other parameter aggregation node, the fastest node among the six nodes will execute directly downward, causing the pipeline to report an error. However, if I only execute two nodes separately, it will wait for the other slower node to complete execution before continuing to execute downward.
I also encountered the same problem. When I run six nodes in parallel, with two nodes in each group connecting to the next LLM node or other parameter aggregation node, the fastest node among the six nodes will execute directly downward, causing the pipeline to report an error. However, if I only execute two nodes separately, it will wait for the other slower node to complete execution before continuing to execute downward.
dify version is 0.10.2
upgrade to v0.10.2, I also encountered the same problem. @crazywoola
app:
description: ''
icon: 🤖
icon_background: '#FFEAD5'
mode: workflow
name: Python Auto
use_icon_as_answer_icon: false
kind: app
version: 0.1.2
workflow:
conversation_variables: []
environment_variables: []
features:
file_upload:
image:
enabled: false
number_limits: 3
transfer_methods:
- remote_url
- local_file
opening_statement: ''
retriever_resource:
enabled: true
sensitive_word_avoidance:
enabled: false
speech_to_text:
enabled: false
suggested_questions: []
suggested_questions_after_answer:
enabled: false
text_to_speech:
enabled: false
language: ''
voice: ''
graph:
edges:
- data:
isInIteration: false
sourceType: code
targetType: end
id: 1729590961187-source-1729498225357-target
source: '1729590961187'
sourceHandle: source
target: '1729498225357'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: start
targetType: if-else
id: 1727170895530-source-1730943302336-target
source: '1727170895530'
sourceHandle: source
target: '1730943302336'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: if-else
targetType: end
id: 1730943302336-false-1730943342502-target
source: '1730943302336'
sourceHandle: 'false'
target: '1730943342502'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: if-else
targetType: code
id: 1730943302336-true-1730943415131-target
source: '1730943302336'
sourceHandle: 'true'
target: '1730943415131'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: if-else
targetType: code
id: 1730943302336-c33fe174-c2e0-44d6-9a6f-d11b8a8d23a1-1730943450923-target
source: '1730943302336'
sourceHandle: c33fe174-c2e0-44d6-9a6f-d11b8a8d23a1
target: '1730943450923'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: code
targetType: code
id: 1730943415131-source-1729590961187-target
source: '1730943415131'
sourceHandle: source
target: '1729590961187'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: code
targetType: code
id: 1730943450923-source-1729590961187-target
source: '1730943450923'
sourceHandle: source
target: '1729590961187'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
desc: ''
selected: false
title: 开始
type: start
variables:
- label: on_shelf_name
max_length: 256
options: []
required: true
type: text-input
variable: on_shelf_name
height: 90
id: '1727170895530'
position:
x: -50.80395039634965
y: 259.9771651848563
positionAbsolute:
x: -50.80395039634965
y: 259.9771651848563
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
outputs:
- value_selector:
- '1729590961187'
- submit_to_status
variable: submit_to_status
- value_selector:
- '1729590961187'
- is_fully_automated
variable: is_fully_automated
selected: false
title: 结束 2
type: end
height: 116
id: '1729498225357'
position:
x: 1288.741002333703
y: 230.31495554569
positionAbsolute:
x: 1288.741002333703
y: 230.31495554569
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "\ndef main(arg1: str, arg2: str) -> dict:\n return {\n \"\
submit_to_status\": 'Solve', \"is_fully_automated\": False\n }\n"
code_language: python3
desc: ''
outputs:
is_fully_automated:
children: null
type: number
submit_to_status:
children: null
type: string
selected: true
title: 代码执行
type: code
variables:
- value_selector:
- '1730943415131'
- result
variable: arg1
- value_selector:
- '1730943450923'
- result
variable: arg2
height: 54
id: '1729590961187'
position:
x: 968.1575853890733
y: 230.31495554569
positionAbsolute:
x: 968.1575853890733
y: 230.31495554569
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: fcdd729c-9e7f-443b-8ad1-803ce68e430c
value: day1
varType: string
variable_selector:
- '1727170895530'
- on_shelf_name
id: 'true'
logical_operator: and
- case_id: c33fe174-c2e0-44d6-9a6f-d11b8a8d23a1
conditions:
- comparison_operator: contains
id: e962c87f-9af5-4afb-a631-a826d3a67e0c
value: day2
varType: string
variable_selector:
- '1727170895530'
- on_shelf_name
id: c33fe174-c2e0-44d6-9a6f-d11b8a8d23a1
logical_operator: and
desc: ''
selected: false
title: 条件分支
type: if-else
height: 174
id: '1730943302336'
position:
x: 263.42439775508706
y: 289.561406645949
positionAbsolute:
x: 263.42439775508706
y: 289.561406645949
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
outputs:
- value_selector:
- '1727170895530'
- on_shelf_name
variable: note
selected: false
title: 结束 2
type: end
height: 90
id: '1730943342502'
position:
x: 611.1882349039337
y: 482.877186708102
positionAbsolute:
x: 611.1882349039337
y: 482.877186708102
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "\ndef main(arg1: str) -> dict:\n return {\n \"result\": arg1+'day1',\n\
\ }\n"
code_language: python3
desc: ''
outputs:
result:
children: null
type: string
selected: false
title: 代码执行 2
type: code
variables:
- value_selector:
- '1727170895530'
- on_shelf_name
variable: arg1
height: 54
id: '1730943415131'
position:
x: 624.6108233643395
y: 143.11775684860658
positionAbsolute:
x: 624.6108233643395
y: 143.11775684860658
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
code: "\ndef main(arg1: str) -> dict:\n return {\n \"result\": arg1\
\ + 'day2',\n }\n"
code_language: python3
desc: ''
outputs:
result:
children: null
type: string
selected: false
title: 代码执行 3
type: code
variables:
- value_selector:
- '1727170895530'
- on_shelf_name
variable: arg1
height: 54
id: '1730943450923'
position:
x: 598.9142171222097
y: 364.3511614433348
positionAbsolute:
x: 598.9142171222097
y: 364.3511614433348
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
viewport:
x: -230.33498100740417
y: 46.67148718792521
zoom: 0.9628792726978274
Self Checks
Dify version
v0.10.1
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
After upgrading to the new version(v0.10.1), in cases where multiple branches converge into a single code processing point, only one branch is executed, and an error occurs during code convergence, requiring all branches to have values. However, in the old version, branches that were not executed would default to None, and the code handling the convergence could process this. thank you
✔️ Expected Behavior
branches that were not executed would default to None, and the code handling the convergence could process this.
❌ Actual Behavior
and an error occurs during code convergence, requiring all branches to have values.