TypeError: t.join is not a function

用户在 Dify v1.6.0 Cloud 版本中,为工作流中的 CODE 节点添加输出参数后,当节点同时连接了输入和输出线时,无法删除该输出参数。浏览器 F12 控制台显示报错 Uncaught TypeError: t.join is not a function 。有用户反馈在 v1.11.1

TypeError: t.join is not a function

TypeError: t.join is not a function

快速结论:该报错出现在 Dify 工作流 CODE 节点的输出参数删除操作中,当节点同时连接了输入和输出线时触发。优先排查是否为 Dify 版本问题,并尝试仅连接输入线后删除参数,或刷新工作流页面。

问题场景

用户在 Dify v1.6.0 Cloud 版本中,为工作流中的 CODE 节点添加输出参数后,当节点同时连接了输入和输出线时,无法删除该输出参数。浏览器 F12 控制台显示报错 Uncaught TypeError: t.join is not a function。有用户反馈在 v1.11.1 版本中问题仍然存在。

报错原文

610-060cbfcedfd67439.js:12 Uncaught TypeError: t.join is not a function
    at 610-060cbfcedfd67439.js:12:21150
    at Array.find (<anonymous>)
    at 610-060cbfcedfd67439.js:12:21140
    at Array.forEach (<anonymous>)
    at E (610-060cbfcedfd67439.js:12:21123)
    at 610-060cbfcedfd67439.js:79:77840
    at 610-060cbfcedfd67439.js:56:42318
    at 610-060cbfcedfd67439.js:56:48030
    at iG (20204352-ffc74e846591bb2a.js:1:133066)
    at 20204352-ffc74e846591bb2a.js:1:139168

原因分析

代码试图对变量调用 .join() 方法,但在特定连接状态下该变量不是数组(可能为字符串或对象)。当 CODE 节点同时连接输入和输出线时,参数的数据结构未归一化,导致 .join 调用失败。这是一个 Dify 工作流编辑器已知的 bug,类似问题曾通过增加 Array.isArray 检查来修复(参见 PR #21598)。

环境排查

  • 确认 Dify 版本:Issue 初始报告为 v1.6.0,后续有用户反馈在 v1.11.1 中仍然存在
  • 确认工作流中 CODE 节点的连接状态:是否同时连接了输入和输出线
  • 确认浏览器控制台报错信息是否与上述报错原文一致

解决步骤

  1. 可优先尝试:断开 CODE 节点的输入线,仅保留输出线连接,然后尝试删除输出参数。该 workaround 来自 Issue 讨论。
  2. 可优先尝试:刷新或重新加载工作流页面后,再次尝试删除操作。
  3. 如果上述方法无效,查看 Dify 官方是否已在后续版本修复此问题。官方在 Issue 中标注“Will be released in v1.7.0”,但 v1.11.1 仍有用户遇到,建议升级到最新版本或等待后续修复。
  4. 如果需要自行修补,可参考 PR #21598(https://github.com/langgenius/dify/pull/21598)的改动,在调用 .join() 前增加 Array.isArray 检查,或确保只有数组到达该代码路径。

验证方法

执行上述步骤后,在 CODE 节点中再次尝试删除输出参数。如果删除成功且浏览器控制台不再出现 TypeError: t.join is not a function 报错,则问题已解决。

参考来源

langgenius/dify #22772

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8341

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注