Workflow parallel nodes. If any node reports an error, the parallel nodes will be marked as errors in the log and the error reasons will be exactly the same, directly confusing the troubleshooting process #15605

Closed
opened 2026-02-21 19:22:30 -05:00 by yindo · 1 comment
Owner

Originally created by @auxpd on GitHub (Jul 23, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.6.0

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

Image

It can be reproduced as long as any node in the workflow reports an error

✔️ Expected Behavior

Only truly incorrect nodes should trigger error alerts

This module has been modified several times. Often, it gets fixed but then gets broken again

Actual Behavior

All parallel nodes will directly report errors

Originally created by @auxpd on GitHub (Jul 23, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.6.0 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce <img width="590" height="365" alt="Image" src="https://github.com/user-attachments/assets/c392bfd8-44b0-401b-b2d0-d0999ec55fd0" /> It can be reproduced as long as any node in the workflow reports an error ### ✔️ Expected Behavior Only truly incorrect nodes should trigger error alerts This module has been modified several times. Often, it gets fixed but then gets broken again ### ❌ Actual Behavior All parallel nodes will directly report errors
yindo added the 🐞 bug label 2026-02-21 19:22:30 -05:00
yindo closed this issue 2026-02-21 19:22:30 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jul 23, 2025):

This is a known issue in Dify's workflow engine: when any node in a parallel branch fails, the engine marks all parallel nodes as failed and assigns them the same error message, even if only one actually failed. This happens because the error propagation logic raises a failure event for the entire parallel section, and the aggregation step applies the same error to all sibling nodes, regardless of their true status. This design leads to confusing logs and makes troubleshooting difficult, as you observed. The relevant logic is in the GraphEngine and WorkflowCycleManager classes, which manage parallel execution and error handling (source, source).

This issue has recurred across versions, sometimes fixed and then reintroduced by later changes (issue reference). The architecture does support per-node error details, but the current error handling for parallel execution does not use this—changing the aggregation logic to report actual error states for each branch would be needed to resolve it.

As a workaround, you can try to monitor node-specific logs or structure your workflow to minimize parallel sections where possible. For maintainers, updating the error aggregation logic to distinguish between truly failed and interrupted nodes in parallel execution would address the root cause.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Jul 23, 2025): <!-- Answer --> This is a known issue in Dify's workflow engine: when any node in a parallel branch fails, the engine marks all parallel nodes as failed and assigns them the same error message, even if only one actually failed. This happens because the error propagation logic raises a failure event for the entire parallel section, and the aggregation step applies the same error to all sibling nodes, regardless of their true status. This design leads to confusing logs and makes troubleshooting difficult, as you observed. The relevant logic is in the `GraphEngine` and `WorkflowCycleManager` classes, which manage parallel execution and error handling ([source](https://github.com/langgenius/dify/blob/8278b39f85d9f6a7111ef55f817cfb4d45dd5918/api/core/workflow/graph_engine/graph_engine.py), [source](https://github.com/langgenius/dify/blob/8278b39f85d9f6a7111ef55f817cfb4d45dd5918/api/core/workflow/workflow_cycle_manager.py)). This issue has recurred across versions, sometimes fixed and then reintroduced by later changes ([issue reference](https://github.com/langgenius/dify/issues/22355)). The architecture does support per-node error details, but the current error handling for parallel execution does not use this—changing the aggregation logic to report actual error states for each branch would be needed to resolve it. As a workaround, you can try to monitor node-specific logs or structure your workflow to minimize parallel sections where possible. For maintainers, updating the error aggregation logic to distinguish between truly failed and interrupted nodes in parallel execution would address the root cause. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/d7f94ba8-9031-4639-a877-59d3f80b269e?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/22858)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#15605