故障排查GitHub issue2 分钟阅读排错/错误码

解决FastGPT v4.5.1空collectionId查询报错

用户将FastGPT升级至v4.5.1版本时,控制台出现MongoDB查询报错。通过复现步骤可知,使用curl发送请求即可触发该报错。

现象

用户将FastGPT升级至v4.5.1版本时,控制台出现MongoDB查询报错。通过复现步骤可知,使用curl发送请求即可触发该报错。报错触发于projects/app/src/pages/api/admin/initv451.ts第233行,该行代码会将collectionId作为_id查询MongoDB集合,当collectionId为空字符串时,会触发控制台报错。

可能原因

问题的根本原因是在该初始化脚本的第233行,代码未对collectionId参数做非空校验,直接使用空字符串作为_id查询MongoDB集合,不符合数据库查询的合法参数要求,从而触发报错。

排查步骤

  1. 确认当前部署的FastGPT版本为v4.5.1。
  2. 查看控制台报错日志,定位到projects/app/src/pages/api/admin/initv451.ts第233行的查询逻辑。
  3. 检查触发该接口请求时传入的collectionId参数,确认是否存在空字符串的情况。
  4. 使用curl发送请求,复现报错以验证问题来源。

解决与验证

解决方法为在第233行的查询逻辑前,增加对collectionId的非空校验,避免传入空字符串作为查询条件。验证步骤为:修复校验逻辑后,重新启动FastGPT项目,使用curl发送请求,确认控制台不再出现对应报错,升级流程可正常完成。需按实际环境确认所有调用该接口的地方,确保传入有效的collectionId参数。

来源:FastGPT GitHub issue