
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 的兼容性不同
解决步骤
- 首选方案(升级 Langfuse 版本):将自托管 Langfuse 实例升级到 v3.196.0 或更高版本。该版本已包含修复,为
crypto.randomUUID()不可用的情况提供了回退逻辑。 - 应急工作流(如果无法立即升级):
- 通过
localhost端口转发访问实例(已在 Issue 中确认可行)。 - 或配置 HTTPS 访问实例,使浏览器处于安全上下文。
- 通过
验证方法
升级后,通过 LAN IP 以 HTTP 协议访问 Langfuse 前端,确认页面正常加载且浏览器控制台无相关报错。从本地通过 localhost 访问作为对照,确保前后行为一致。



