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

解决FastGPT接入Marker PDF解析出现的replace属性报错问题

用户使用FastGPT v4.9.0私有部署版本,接入Marker PDF文档解析功能时,出现以下流程与报错: 1. 上传test.pdf成功,耗时17ms 2. 触发外部服务解析文件 3. 自定义文件解析完成,耗时9986ms 4.

现象

用户使用FastGPT v4.9.0私有部署版本,接入Marker PDF文档解析功能时,出现以下流程与报错:

  1. 上传test.pdf成功,耗时17ms
  2. 触发外部服务解析文件
  3. 自定义文件解析完成,耗时9986ms
  4. 调用/api/core/dataset/collection/create/fileId接口报错,错误信息为Cannot read properties of undefined (reading 'replace'),完整错误栈可参考issue提供的日志内容。

可能原因

根据报错日志的栈信息,错误发生在2374.js的c函数中,尝试对undefined值调用replace方法。结合业务流程,该报错大概率出现在Marker解析后的结果传入数据集集合创建接口时,某个预期的字符串类型字段未被正确赋值,导致代码尝试调用replace方法时触发类型错误。

排查步骤

  1. 确认当前FastGPT版本为v4.9.0私有部署版本,核对Marker解析服务与当前FastGPT版本的兼容性。
  2. 查看Marker PDF解析后的返回数据,核对是否包含创建数据集集合接口预期的必填字段。
  3. 检查FastGPT中关于Marker解析服务的相关配置,需按实际环境确认配置项是否正确。
  4. 复现问题,抓取调用/api/core/dataset/collection/create/fileId接口的请求参数与返回数据,确认传入的参数是否完整。

解决与验证

  1. 针对字段缺失问题,补充Marker解析后的必填字段,确保传入创建接口的参数包含所有需要的字符串类型字段,避免出现undefined值。
  2. 调整代码逻辑,在调用replace方法前先校验变量是否存在,确保变量已被正确赋值后再执行字符串操作。
  3. 重新上传测试PDF文件,观察日志是否不再出现replace属性报错,确认文件解析完成后成功创建数据集集合,验证问题已解决。

来源:FastGPT GitHub issue