JSON 变量映射 执行出错

描述问题

解析HTTP请求节点返回的JSON数据时出错,并且观察到工作流触发了两次

image

第一次工作流

HTTP请求节点也执行了两次
image

第一次的请求结果为空,AI推测是因为NocoBase 引擎在等待异步 HTTP 响应时执行上下文提前退出了
image

第二次报错,无法读取数据
image

第二次工作流

HTTP请求返回结果正常,但解析出错
nocobase-error.zip (2.5 KB)

image

image

image

* 运行环境

  • NocoBase 版本: 2.0.36

  • 数据库种类与版本: Postgresql 16

  • 部署方式: Docker

  • Docker 镜像版本: nocobase/nocobase:latest

如何重现

该问题为偶发性,一定时间后会出现,且与数据特异性无关,使用同一数据触发工作流执行失败后,重试仍然无效(已清理过缓存,重启docker容器,使用无痕浏览等)

请求一个外部mermaid绘图API

返回的原始JSON响应数据如下,为mermaid格式纯文本,无任何JSON语法错误:

{
"update_code": "```mermaid\nstateDiagram-v2\n    %% 定义样式:只需已完成和进行中,待开始为默认样式\n    classDef active fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#92400e\n    classDef completed fill:#d1fae5,stroke:#10b981,stroke-width:2px,color:#065f46\n    classDef rejected fill:#fee2e2,stroke:#ef4444,stroke-width:2px,color:#7f1d1d\n\n    %% 定义节点\n    change_compilation: 简报编制 张三\n    change_minister_approve: 简报-部长审批 李四\n    change_vp_approve: 简报-副总审批\n    change_general_audit_approve: 简报-总审部审批\n    publish: 成果文件出稿\n    delivery: 装订-送出\n    completed: 已完成\n\n    %% 绘制工作流\n    change_compilation:::completed --> change_minister_approve:::active\n    change_minister_approve --> change_vp_approve\n    change_vp_approve --> change_general_audit_approve\n    change_general_audit_approve --> publish\n    publish --> delivery\n    delivery --> completed\n```"
}

JSON变量提取节点配置如下:

预期行为

JSON变量提取能够获得update_code的结果

工作流执行日志

nocobase-error.zip (2.5 KB)

补充

外部mermaid绘制API服务器日志中无报错,测试出错流程期间均返回了200以及正确的JSON格式数据

已确认不是偶发性故障,升级到2.0.36后,所有审批工作流中的JSON 变量映射均报同样的错
image
image