#1219·nezha

v2.3.0 Webhook 通知保存后 url/request_header/request_body 未持久化

Author: mickeyqiaCreated Jul 28, 2026Updated Sep 13, 2026

运行环境

iStoreOS 24.10.7 (OpenWrt), Linux 6.6.141, ARM64 (aarch64), Docker

Nezha 版本

哪吒监控 2.3.0

描述问题

环境

  • 哪吒 Dashboard:v2.3.0
  • 镜像:ghcr.io/nezhahq/nezha:latest
  • 部署方式:Docker
  • 数据库:SQLite
  • 系统:iStoreOS

数据目录:

/mnt/mmc1-4/nezha-data -> /dashboard/data

sqlite.db 存在且可正常写入。


复现步骤

  1. 进入「通知」
  2. 新建或编辑一个 Webhook 通知
  3. 填写:
    • URL
    • Request Header
    • Request Body
  4. 点击保存
  5. 接口返回 success
  6. 再次进入编辑或调用 API 获取通知

预期结果

保存后应正常保留:

  • url
  • request_header
  • request_body

实际结果

保存后:

以下字段正常保存:

  • name
  • verify_tls
  • format_metric_units

但是:

  • url 被保存为空字符串
  • request_header 被保存为空字符串
  • request_body 被保存为空字符串

导致 Webhook 无法正常使用。


Request Payload

浏览器 Network 可以确认发送的数据正确,例如:

{ "url":"https://api.day.app/xxxxxxxx", "request_header":"{...}", "request_body":"{...}" }


保存接口返回

{ "success": true, "data": 2 }

但是再次获取通知时:

{ "url":"", "request_header":"", "request_body":"" }


补充说明

  • 所有 Webhook 都可以复现,并非 Bark 特有问题。
  • httpbin、Bark 等 URL 均一样。
  • 浏览器确认 Request Payload 正确。
  • Dashboard 日志没有 SQLite 或数据库错误。
  • sqlite.db 存在且可正常写入。
  • 使用官方镜像 ghcr.io/nezhahq/nezha:latest 仍可复现。

复现步骤

配置信息

附加信息

验证

  • 我确认这是一个 nezha (哪吒面板) 的问题。
  • 我已经搜索了 Issues,并确认该问题之前没有被反馈过。