dify - 💡(How to fix) Fix Output node retains legacy "End" node restrictions after rename [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
langgenius/dify#34827Fetched 2026-04-10 03:45:56
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
1
Author
Timeline (top)
commented ×1labeled ×1

Error Message

  1. The frontend should either prevent duplicate variable names across Output nodes, or warn the user that values will be overwritten.

Root Cause

This is because use-available-blocks.ts still treats BlockEnum.End as a terminal node and returns an empty availableNextBlocks array.

RAW_BUFFERClick to expand / collapse

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.13.3

Cloud or Self Hosted

Cloud

Steps to reproduce

The Output node (formerly "End") was redesigned: it is no longer required, Output Variable is now mandatory, and it can be inserted mid-workflow to surface data without stopping execution. However, several frontend behaviors still assume the old "terminal End node" semantics.

Issue 1: Cannot add nodes after an Output node

  1. Create a workflow: User Input → LLM.
  2. Add an Output node after the LLM node.
  3. Try to add another node after the Output node.

You cannot — the Output node blocks all downstream connections. Inserting an Output node between two existing connected nodes (via "Add Node" on an edge) works fine, but adding one at the end of a branch makes it a dead end.

This is because use-available-blocks.ts still treats BlockEnum.End as a terminal node and returns an empty availableNextBlocks array.

Issue 2: No visual separator between outputs from multiple Output nodes

  1. Create a workflow: User Input → LLM → Output → LLM 2 → Output 2 (insert the first Output node between LLM and LLM 2).
  2. Configure each Output node to reference its upstream LLM's text output.
  3. Run the workflow in the WebApp.

The two outputs are concatenated into a single text block with no spacing or delimiter between them. It is very difficult to tell where one output ends and the next begins.

Issue 3: Duplicate variable names across Output nodes silently overwrite

  1. Using the same workflow as Issue 2, note that both Output nodes default their variable name to text (since they both reference an LLM's text output).
  2. Run the workflow.

The WebApp only shows the result from the last Output node to execute. The first output is silently overwritten because both share the variable name text. There is no validation or warning preventing duplicate names across different Output nodes.

✔️ Expected Behavior

  1. Users should be able to add nodes after an Output node, since it no longer serves as a workflow terminator.
  2. When multiple Output nodes execute, their results should be visually separated in the WebApp.
  3. The frontend should either prevent duplicate variable names across Output nodes, or warn the user that values will be overwritten.

Additionally: since Output Variable is now a required field, the Output node panel should initialize with one empty variable row by default, rather than requiring the user to manually click + first.

❌ Actual Behavior

  1. Output node blocks all downstream connections (legacy End node behavior in use-available-blocks.ts).
  2. Multiple outputs concatenate into raw unseparated text.
  3. Duplicate variable names across Output nodes cause silent overwrite with no warning.

extent analysis

TL;DR

Update use-available-blocks.ts to remove the terminal node assumption for the Output node and implement visual separation and duplicate variable name handling for Output nodes.

Guidance

  • Review and update use-available-blocks.ts to reflect the new semantics of the Output node, allowing nodes to be added after it.
  • Modify the Output node panel to initialize with an empty variable row by default, as Output Variable is now mandatory.
  • Implement a visual separator between outputs from multiple Output nodes in the WebApp.
  • Add validation or warnings to prevent duplicate variable names across different Output nodes.

Example

No code snippet is provided as the issue does not contain sufficient code context.

Notes

The provided information suggests that the issues are related to the recent redesign of the Output node. The fixes should focus on updating the frontend behaviors to align with the new node semantics.

Recommendation

Apply a workaround by manually checking for and avoiding duplicate variable names across Output nodes until the underlying issues are addressed in the codebase.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING