TypeError: crypto.randomUUID is not a function

用户部署了自托管 Langfuse 实例(版本 v3.195.0 OSS),当通过局域网内另一台设备使用服务器 IP 和端口(如 http://: )访问时,前端加载失败并抛出客户端异常。通过 localhost 端口转发访问同一实例则正常。

TypeError: crypto.randomUUID is not a function

TypeError: crypto.randomUUID is not a function

快速结论:该报错出现在通过 LAN IP 或 HTTP 协议访问自托管 Langfuse 实例时,浏览器端 crypto.randomUUID() 因非安全上下文(non-secure context)不可用导致前端崩溃。优先升级到 v3.196.0 或更高版本。

问题场景

用户部署了自托管 Langfuse 实例(版本 v3.195.0 OSS),当通过局域网内另一台设备使用服务器 IP 和端口(如 http://<ip>:<port>)访问时,前端加载失败并抛出客户端异常。通过 localhost 端口转发访问同一实例则正常。

报错原文

Application error: a client-side exception has occurred while loading <host-ip> (see the browser console for more information).

TypeError: crypto.randomUUID is not a function

原因分析

这是 Langfuse 的已知 bug。PR #14257 在数据集项媒体上传功能中引入了 crypto.randomUUID() 调用,但没有为非安全上下文(non-secure context)提供回退方案。根据 MDN 文档crypto.randomUUID() 仅在安全上下文(HTTPS 或 localhost)中可用。当通过 HTTP 协议的 LAN IP 访问自托管实例时,该 API 不可用,导致前端崩溃。

该问题具有浏览器/环境依赖性:

  • Firefox:即使启用相关的 HTTP/安全标志也可复现
  • Chrome:启用对应的不安全/私有网络访问标志后可工作

环境排查

  • Langfuse 版本:确认是否为 v3.195.0 或包含 PR #14257 的中间版本
  • 访问协议:确认是否通过 HTTP(而非 HTTPS)访问
  • 访问地址:确认是否通过 LAN IP(而非 localhost)访问
  • 浏览器类型及版本:不同浏览器对该 API 的兼容性不同

解决步骤

  1. 首选方案(升级 Langfuse 版本):将自托管 Langfuse 实例升级到 v3.196.0 或更高版本。该版本已包含修复,为 crypto.randomUUID() 不可用的情况提供了回退逻辑。
  2. 应急工作流(如果无法立即升级):
    • 通过 localhost 端口转发访问实例(已在 Issue 中确认可行)。
    • 或配置 HTTPS 访问实例,使浏览器处于安全上下文。

验证方法

升级后,通过 LAN IP 以 HTTP 协议访问 Langfuse 前端,确认页面正常加载且浏览器控制台无相关报错。从本地通过 localhost 访问作为对照,确保前后行为一致。

参考来源

langfuse/langfuse #15008

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 14485

发表回复

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