Bug: Variables from upstream Code Node are not resolved when concatenated in the URL field of an HTTP Request Node

用户在 Dify 1.15.0 版本(Self Hosted Docker 部署)中创建了一个工作流:

Bug: Variables from upstream Code Node are not resolved when concatenated in the URL field of an HTTP Request Node

Bug: Variables from upstream Code Node are not resolved when concatenated in the URL field of an HTTP Request Node

快速结论:在 Dify 工作流中,当 HTTP Request 节点的 URL 字段拼接上游 Code 节点的输出变量时,变量未被解析,导致实际请求 URL 中保留了未替换的模板字符串(如 %7B%7B#code_node.repo_full_name#%7D%7D),最终引发 404 错误。优先排查变量选择器路径是否匹配、以及是否处于已发布(Published)模式。

问题场景

用户在 Dify 1.15.0 版本(Self Hosted Docker 部署)中创建了一个工作流:

  • 先添加一个 Code Execution 节点,输出一个自定义变量(如 repo_full_name)。
  • 再添加一个 HTTP Request 节点,并在 URL 字段中将上游 Code 节点的变量拼接在路径中(例如 http://example.com/api/v1/repos/{{#code_node.repo_full_name#}}/compare)。
  • 运行时,变量未被替换,导致请求 URL 包含编码后的模板字符串。

报错原文

GET http://10.56.200.210:3000/api/v1/repos/%7B%7B#code_node.repo_full_name#}}/compare...

404 Not Found

原因分析

此问题被认为是 Dify 1.15.0 版本中一个影响多个节点类型的变量解析 Bug。HTTP Request 节点使用的变量替换机制({{#selector.path#}})在所有字段(URL、headers、params、body)中一致,但问题在于变量在 URL 编码应用之前 未被正确解析,导致节点接收到的仍是字面模板字符串。可能原因包括:

  • 变量选择器的路径不匹配(例如节点 ID 不一致),导致引擎无法识别变量。
  • 问题可能与运行模式(草稿预览 vs 已发布模式)有关,某些用户反馈变量在其中一种模式可以解析,另一种不行。
  • 变量传播机制本身可能存在缺陷,导致上游节点的输出不能正确传递给下游节点。

环境排查

  • Dify 版本:1.15.0(Docker 部署)
  • 节点类型:Code Execution 节点 + HTTP Request 节点
  • 确认 Code 节点的输出变量是否在运行日志中显示正确的值(即在 HTTP Request 节点执行前,Code 节点本身是否产生预期输出)。
  • 确认 HTTP Request 节点配置中的变量选择器是否使用正确的路径格式(如 {{#节点ID.输出变量名#}})。
  • 确认问题是否在草稿预览模式或已发布模式下复现(可两种模式都测试)。

解决步骤

  1. 验证变量选择器路径:在 HTTP Request 节点配置中,打开变量选择器/选择器(variable picker),确认 Code 节点的输出变量名称和节点 ID 是否正确显示。如果变量路径不匹配,重新选择变量。
  2. 测试运行模式:分别在草稿预览模式和已发布模式下运行工作流,观察变量解析是否一致。
  3. 插入中间节点:在 Code 节点和 HTTP Request 节点之间添加一个 Template Transform 节点,将 Code 节点的输出变量通过 Template Transform 节点传递,再供 HTTP Request 节点引用。这是临时绕过变量传播问题的常用方法。
  4. 检查是否有补丁版本:1.15.0 发布于 2026 年 6 月底,请检查是否有后续的补丁版本(如 1.15.1+)修复了此变量解析问题。如有,升级到最新版本。

验证方法

完成上述步骤后,重新运行工作流,检查 HTTP Request 节点的日志:

  • 确认请求 URL 中不再出现 %7B%7B(即模板字符串已被替换为实际变量值)。
  • 确认外部 API 返回 200 状态码而非 404。
  • 在 Dify 工作流运行日志中确认 HTTP Request 节点的输入 URL 已经正确解析(例如应显示 http://example.com/api/v1/repos/user/demo/compare 而非原始模板字符串)。

参考来源

langgenius/dify #38847

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 13139

发表回复

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