运行环境
Debian GNU/Linux 12 6.1.0-9-amd64
Nezha 版本
v2.2.4 ~ v2.2.8 均异常,v2.2.3 正常
描述问题
低版本 iOS 设备访问 Nezha Dashboard 管理前端时,页面会显示 500 Type error,Safari 和 Chrome iOS 均可复现。
经过版本回退测试,发现:
v2.2.3:低版本 iOS 可以正常打开管理前端,刷新也正常
v2.2.4 起:低版本 iOS 打开或刷新管理前端会显示 500 Type error
v2.2.4 ~ v2.2.8 均存在该问题
- Android 浏览器访问正常
- 较新版本 iOS 18/26 设备访问正常,但暂时未获取具体版本号
目前已确认出现问题的 iOS 版本:
- iOS 15:异常
- iOS 16.4.1:异常
- iOS 16.6:异常
因此怀疑问题可能从 v2.2.4 的管理前端更新后引入,与低版本 iOS WebKit 的兼容性有关。
服务端日志中对应请求大多为 200,未看到明显的后端 HTTP 500,因此该页面显示的 500 Type error 更像是前端运行时异常,而不是后端真正返回 500。
复现步骤
- 部署 Nezha Dashboard
v2.2.4 或更高版本,例如 v2.2.8
- 使用低版本 iOS 设备访问 Dashboard 管理前端
- 使用 Safari 或 Chrome iOS 打开面板
- 页面显示
500 Type error
- 刷新页面后仍可能复现
- 回退 Dashboard 到
v2.2.3
- 同一台低版本 iOS 设备可以正常打开和刷新管理前端
对比结果:
- v2.2.3:正常
- v2.2.4 ~ v2.2.8:异常
配置信息
Docker Compose 主要配置如下:
services:
nezha-dashboard:
image: ghcr.io/nezhahq/nezha:<version>
container_name: nezha-dashboard
restart: always
ports:
- "8008:8008"
volumes:
- /opt/nezha/dashboard/data:/dashboard/data
environment:
- TZ=Asia/Shanghai
Dashboard 通过 Nginx Proxy Manager 反代访问。
Agent 对接方式为 IP:Port 直连:
Agent 对接地址:公网 IP:8008
Agent TLS:关闭
该问题只影响 Dashboard 管理前端在低版本 iOS 上的访问,Agent 连接和 Android/较新 iOS 访问均正常。
附加信息
补充测试结果:
异常设备:
- iOS 15:Safari / Chrome iOS 均显示
500 Type error
- iOS 16.4.1:Safari / Chrome iOS 均显示
500 Type error
- iOS 16.6:Safari / Chrome iOS 均显示
500 Type error
正常设备:
- Android 浏览器正常
- 较新版本 iOS 正常
- 同一环境下回退到 Nezha
v2.2.3 后,低版本 iOS 正常
已排除:
- 不是 Agent 对接问题
- 不是单一浏览器问题,因为 Safari 和 Chrome iOS 均可复现
- 不像是后端 HTTP 500,因为服务端日志中对应请求多数为 200
- 不是单纯反代不可用,因为 Android 和较新 iOS 正常
怀疑范围:
问题可能从 v2.2.4 引入,可能与管理前端构建产物在低版本 iOS WebKit 上的兼容性有关。
已搜索相关 Issues,发现 #1031 曾反馈过旧版 1.9.11 在 iOS 16 Safari 下报 500,但该问题发生在 1.x 版本,且缺少 v2.2.3/v2.2.4 的回归对比。本问题复现于 v2.2.4 ~ v2.2.8,且 v2.2.3 正常,因此不是同一个版本范围的问题。
验证
运行环境
Debian GNU/Linux 12 6.1.0-9-amd64
Nezha 版本
v2.2.4 ~ v2.2.8 均异常,v2.2.3 正常
描述问题
低版本 iOS 设备访问 Nezha Dashboard 管理前端时,页面会显示
500 Type error,Safari 和 Chrome iOS 均可复现。经过版本回退测试,发现:
v2.2.3:低版本 iOS 可以正常打开管理前端,刷新也正常v2.2.4起:低版本 iOS 打开或刷新管理前端会显示500 Type errorv2.2.4 ~ v2.2.8均存在该问题目前已确认出现问题的 iOS 版本:
因此怀疑问题可能从
v2.2.4的管理前端更新后引入,与低版本 iOS WebKit 的兼容性有关。服务端日志中对应请求大多为
200,未看到明显的后端 HTTP 500,因此该页面显示的500 Type error更像是前端运行时异常,而不是后端真正返回 500。复现步骤
v2.2.4或更高版本,例如v2.2.8500 Type errorv2.2.3对比结果:
配置信息
Docker Compose 主要配置如下:
Dashboard 通过 Nginx Proxy Manager 反代访问。
Agent 对接方式为 IP:Port 直连:
Agent 对接地址:公网 IP:8008
Agent TLS:关闭
该问题只影响 Dashboard 管理前端在低版本 iOS 上的访问,Agent 连接和 Android/较新 iOS 访问均正常。
附加信息
补充测试结果:
异常设备:
500 Type error500 Type error500 Type error正常设备:
v2.2.3后,低版本 iOS 正常已排除:
怀疑范围:
问题可能从
v2.2.4引入,可能与管理前端构建产物在低版本 iOS WebKit 上的兼容性有关。已搜索相关 Issues,发现 #1031 曾反馈过旧版 1.9.11 在 iOS 16 Safari 下报 500,但该问题发生在 1.x 版本,且缺少 v2.2.3/v2.2.4 的回归对比。本问题复现于 v2.2.4 ~ v2.2.8,且 v2.2.3 正常,因此不是同一个版本范围的问题。
验证