TypeError: Invalid URL when using OpenRouter models

用户在 LobeChat(Web 桌面浏览器和独立桌面客户端)中使用 OpenRouter 模型时,应用在渲染阶段崩溃,显示“TypeError: Invalid URL”和“Render Error”错误块。此问题在自托管服务器网页应用和独立桌面客户端中均会触发。用户部署平台为 Zeabur,操作

TypeError: Invalid URL when using OpenRouter models

TypeError: Invalid URL when using OpenRouter models

快速结论:该崩溃通常发生在 LobeChat 版本 ≤ 2.2.0 中,当使用 OpenRouter 模型并启用了“使用模型的内置网络搜索”功能时。优先排查该搜索选项是否已开启,并尝试关闭它。

问题场景

用户在 LobeChat(Web 桌面浏览器和独立桌面客户端)中使用 OpenRouter 模型时,应用在渲染阶段崩溃,显示“TypeError: Invalid URL”和“Render Error”错误块。此问题在自托管服务器网页应用和独立桌面客户端中均会触发。用户部署平台为 Zeabur,操作系统为 Windows,浏览器为 Chrome,LobeChat 版本为 2.2.0。

报错原文

TypeError: Invalid URL
    at app://renderer/assets/Modal-BPYO57Ra.js:26539:65
    at Array.map ()
    at app://renderer/assets/Modal-BPYO57Ra.js:26535:40
    at renderWithHooks (app://renderer/assets/client-orQMp_Ex.js:2879:21)
    at updateFunctionComponent (app://renderer/assets/client-orQMp_Ex.js:4255:15)
    at updateSimpleMemoComponent (app://renderer/assets/client-orQMp_Ex.js:4126:10)
    at updateMemoComponent (app://renderer/assets/client-orQMp_Ex.js:4101:184)
    at beginWork (app://renderer/assets/client-orQMp_Ex.js:4732:20)
    at performUnitOfWork (app://renderer/assets/client-orQMp_Ex.js:6619:14)
    at workLoopSync (app://renderer/assets/client-orQMp_Ex.js:6523:36)
Error in tRPC handler (lambda) on path: message.update, type: mutation
Error [TRPCError]: [
  {
    "code": "invalid_type",
    "expected": "string",
    "received": "undefined",
    "path": [
      "value",
      "search",
      "citations",
      0,
      "url"
    ],
    "message": "Required"
  }
]

原因分析

根本原因在于:当启用“Use model’s built-in web search”(使用模型的内置网络搜索)时,OpenRouter(以及某些其他提供商)会在初始 SSE grounding 事件中发出包含空引用对象的响应,例如 {"citations":[{}]}。流式处理器会因 citations.length > 0 而将其传递至前端,但前端在渲染时尝试对 undefined URL 执行 new URL(undefined),从而抛出 TypeError: Invalid URL 并导致页面崩溃。Docker 日志中的 Zod 校验错误(citations[0].urlundefined)也证实了这一分析。

环境排查

  • 确认 LobeChat 版本是否 ≤ 2.2.0(该问题在版本 2.2.0 中存在,此前版本也可能受影响)。
  • 检查是否使用 OpenRouter 模型(或其他可能产生空引用对象的提供商)。
  • 确认“Use model’s built-in web search”功能是否处于启用状态。

解决步骤

  1. 临时工作区:禁用 OpenRouter 模型的“Use model’s built-in web search”开关。
  2. 等待或推动修复(可优先尝试):此问题已确认为 #13143 的重复问题。该 Issue 中提出的修复方案(在 StreamingHandler.ts 中过滤掉不包含有效 url 的引用,并在 SearchGrounding.tsx 中添加防御性检查)尚未被合并。建议关注官方发布,或根据 Issue 讨论自行应用补丁。

验证方法

关闭“使用模型的内置网络搜索”后,重新向 OpenRouter 模型发送请求,观察是否还会出现“TypeError: Invalid URL”导致的崩溃。如果不再发生,则问题已临时解决。

参考来源

lobehub/lobe-chat #15043

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8466

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注