bug: Run experiment modal does not display error to the user

本 bug 在 Langfuse 自托管版本(v3.162.0)中,用户在创建实验时未选择 prompt,最后一步的“Run Experiment”按钮无响应且不显示任何错误信息,界面看似卡死。应优先检查提交按钮的 disabled 逻辑是否覆盖了 prompt 选择与模型配置验证。

快速结论:本 bug 在 Langfuse 自托管版本(v3.162.0)中,用户在创建实验时未选择 prompt,最后一步的“Run Experiment”按钮无响应且不显示任何错误信息,界面看似卡死。应优先检查提交按钮的 disabled 逻辑是否覆盖了 prompt 选择与模型配置验证。

适用环境:Langfuse 自托管部署,版本 v3.162.0(未提及浏览器、操作系统等,无需补写)。

最快修复方案:暂无官方已验证的一键修复方案;但 Issue 中的分析给出了两个可优先尝试的代码修改方向(见下方解决步骤),修改后需重新构建前端。

注意事项:以下方案为第三方分析建议,未在 Issue 中得到提交者或 Langfuse 团队明确验证,修改代码前请备份并评估风险。

问题场景

在 Langfuse 实验(Experiment)功能中,用户创建新实验时,如果不在第一步选择 prompt,直接跳转到最后一步(Review step),此时“Run Experiment”按钮显示为可点击状态,但点击后没有任何反应,也不弹出任何错误提示。用户只能手动回到第一步才能看到“No prompt selected”的错误。此问题导致用户无法正常完成实验创建,并会误认为 UI 已崩溃。

报错原文

bug: Run experiment modal does not display error to the user

原因分析

经分析,根因在于 MultiStepExperimentForm.tsx 中“Run Experiment”按钮的 disabled 条件存在缺陷:

  • disabled 属性仅检查数据集验证结果和实验名称错误,没有检查 promptId(所选 prompt)和 modelConfig(模型配置)是否已填写
  • promptId 为空时,Boolean(promptIdFromHook && datasetId) 结果为 false,导致整个禁用条件不生效,按钮显示为可用。
  • 点击按钮后,form.handleSubmit(onSubmit) 被调用,但底层的 Zod schema 要求 promptId 非空,因此表单提交被静默中止,且 ReviewStep 组件中没有放置任何 FormMessage 组件,错误信息无法呈现给用户。

此外,项目中已有的 isStepValid() 函数能够正确校验所有必填字段,但仅用于面包屑步骤指示器,未被用于控制提交按钮的禁用状态。

环境排查

  • 确认 Langfuse 版本是否为 v3.162.0 或相近版本(若版本更旧或更新,问题可能表现不同)。
  • 检查前端构建产物是否包含最新代码。

解决步骤

方案一(可优先尝试,最小改动

参考来源

langfuse/langfuse #12888

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15817

发表回复

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