
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 节点的连接状态:是否同时连接了输入和输出线
- 确认浏览器控制台报错信息是否与上述报错原文一致
解决步骤
- 可优先尝试:断开 CODE 节点的输入线,仅保留输出线连接,然后尝试删除输出参数。该 workaround 来自 Issue 讨论。
- 可优先尝试:刷新或重新加载工作流页面后,再次尝试删除操作。
- 如果上述方法无效,查看 Dify 官方是否已在后续版本修复此问题。官方在 Issue 中标注“Will be released in v1.7.0”,但 v1.11.1 仍有用户遇到,建议升级到最新版本或等待后续修复。
- 如果需要自行修补,可参考 PR #21598(https://github.com/langgenius/dify/pull/21598)的改动,在调用
.join()前增加Array.isArray检查,或确保只有数组到达该代码路径。
验证方法
执行上述步骤后,在 CODE 节点中再次尝试删除输出参数。如果删除成功且浏览器控制台不再出现 TypeError: t.join is not a function 报错,则问题已解决。


![[Bug]: `refresh_ref_docs()` / `arefresh_ref_docs()` drop kwargs after the first document in a batch](https://www.chat-gpts.plus/wp-content/uploads/2026/06/21518-40a95a4b-768x403.jpg)
