You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chainlink webhook Job手动运行报jobRun.requestBody路径未找到

问题排查与解决方法

环境与报错复现

  • 运行环境:Chainlink Docker镜像版本1.5.1-root,镜像sha256值为310e5b014dcc135e9fc2d9ca6c9367687f7579db5119c6b2dc556309847d5a47
  • 测试用webhook类型Job初始配置:
type            = "webhook"
schemaVersion   = 1
observationSource   = """
    parse_request  [type="jsonparse" path="data,result" data="$(jobRun.requestBody)"]
    send_to_bridge [type="bridge" name="get-sha256sum" requestData="{ \"url\": $(parse_request) }"]

    parse_request -> send_to_bridge
"""
  • 触发方式:通过节点WebUI手动触发,传入参数如下:
{
  "data": {
    "url": "https://i.kym-cdn.com/entries/icons/original/000/018/012/this_is_fine.jpeg",
  }
}
  • 报错现象:jsonparse任务执行失败,抛出错误data: key requestBody / keypath jobRun.requestBody: keypath not found,任务状态标记为ERRORED,返回的任务核心信息如下:
{
  "job": {
    "__typename": "Job",
    "id": "6",
    "name": "wh4",
    "observationSource": " parse_request [type=\"jsonparse\" path=\"data,result\" data=\"$(jobRun.requestBody)\"] send_to_bridge [type=\"bridge\" name=\"get-sha256sum\" requestData=\"{ \\\"url\\\": $(parse_request) }\"] parse_request -> send_to_bridge "
  },
  "status": "ERRORED"
}

报错核心原因

三个问题叠加导致报错:

  1. 字段取值源错误:jobRun.requestBody字段仅在通过外部HTTP接口触发webhook Job时才会自动填充,内容是HTTP请求的完整原始请求体。通过WebUI手动触发Job时,传入的参数会直接挂载到jobRun对象根层级,不存在requestBody子字段,自然会报keypath not found。
  2. JSON解析路径配置错误:传入的参数结构是data.url,但Job里jsonparse任务配置的解析路径是data,result,就算取值源正确,也会因为找不到result字段报错。
  3. 传入参数格式错误:WebUI输入的JSON参数里,url字段末尾多了一个多余的尾逗号,属于非法JSON格式,部分场景下会直接导致参数解析失败。

webhook类型Job正确手动运行方式

根据触发场景二选一即可:

方式1:继续使用WebUI手动触发

需要修改Job配置,修正取值源和解析路径,修正后的完整配置如下:

type            = "webhook"
schemaVersion   = 1
observationSource   = """
    parse_request  [type="jsonparse" path="data,url" data="$(jobRun)"]
    send_to_bridge [type="bridge" name="get-sha256sum" requestData="{ \"url\": $(parse_request) }"]

    parse_request -> send_to_bridge
"""

配置保存后,在WebUI触发页面传入修正了格式的JSON参数即可正常运行,参数示例:

{
  "data": {
    "url": "https://i.kym-cdn.com/entries/icons/original/000/018/012/this_is_fine.jpeg"
  }
}

方式2:保留原有jobRun.requestBody取值逻辑

这种方式不能用WebUI触发,需要调用节点外部API触发:

  1. 先在节点配置中为该webhook Job生成外部访问令牌
  2. 向节点webhook触发接口发送POST请求,请求体直接传入要提交的JSON参数,此时节点会自动将完整请求体赋值给jobRun.requestBody字段
  3. 注意:就算用API触发,原配置里的jsonparse路径还是错误的,需要把path="data,result"改成path="data,url",同时删掉请求参数里的多余尾逗号,否则依然会执行失败。

内容的提问来源于stack exchange,提问作者Utgarda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:42:18