快速结论:该 bug 出现在 Langfuse 实验向导中,当用户不选择数据集时,向导仍允许进入“Review & Run”步骤并点击“Run experiment”,但无明确验证提示。优先排查 MultiStepExperimentForm.tsx 中 Next 按钮的 onClick 逻辑是否调用了 isStepValid()。
适用环境:Langfuse Cloud(Issue 未确认自托管版本是否也存在此问题)。
最快修复方案:暂无确认的一步修复方案。推荐优先尝试:在 MultiStepExperimentForm.tsx 的 Next 按钮 onClick 处理函数中,先调用 isStepValid() 校验数据集选择,若无效则阻止步骤前进并显示错误提示。
注意事项:该方案仅为代码层面推测,需由开发者验证。Issue 中未提供已合并的补丁代码。
问题场景
用户在 Langfuse 的 Prompts 页面选择某个 prompt 后,点击“Run experiment”进入实验向导。在“Dataset”步骤中,用户未选择任何数据集就直接点击“Next”,向导并未阻止前进,用户一直可以走到“Review & Run”步骤并点击“Run experiment”,但实际运行因缺少数据集而失败。只有当用户返回 Dataset 步骤时,才看到数据集字段标红(验证错误),但初始操作流程缺乏明确的即时反馈。
报错原文
bug: Experiment wizard allows proceeding and running without dataset selection or visible validation error
原因分析
可能原因:实验向导的步骤管理组件 MultiStepExperimentForm.tsx 中,虽然定义了 isStepValid() 函数(正确检查了 datasetId 是否为空),但“Next”按钮的 onClick 处理函数直接使用 setActiveStep 跳转到下一步,没有调用 isStepValid() 进行校验。因此用户可以跳过未选择数据集的步骤。而最终的“Run experiment”按钮虽因校验被禁用,但页面上没有显示禁用原因说明,用户无法直观理解为何无法运行实验。
环境排查
- 确认使用的 Langfuse 版本(Issue 报告时未提供自托管版本号,Langfuse Cloud 用户无需版本确认)。
- 检查
web/src/features/experiments/components/MultiStepExperimentForm.tsx文件中isStepValid()的实现(位于约第 334-339 行)。 - 检查“Next”按钮的
onClick处理函数(位于约第 543-556 行),看是否调用了isStepValid()。
解决步骤
- 可优先尝试:修改
MultiStepExperimentForm.tsx中“Next”按钮的onClick逻辑,在更新activeStep前先调用isStepValid()(例如if (!isStepValid(activeStep)) return;),确保未选择数据集时无法继续。 - 备选方案:在“Review & Run”步骤显示明确的验证错误信息,例如当
datasetId缺失时,在页面顶部提示“Please select a dataset before running the experiment”。 - 验证表单 schema(
web/src/features/experiments/types.ts约第 11 行)中datasetId的校验规则(原已有z.string().min(1, "Please select a dataset")),确保该提示能在适当位置展示。
验证方法
按照复现步骤操作:进入实验向导,在 Dataset 步骤不选择任何数据集,点击“Next”,确认无法前进到下一步;或如果使用备选方案,确认在“Review & Run”步骤能看到明确的验证错误提示。
参考来源
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[Question]: Fail to access model(deepseek-r1:14b).**ERROR**: [Errno 113] No route to host](https://www.chat-gpts.plus/wp-content/uploads/2026/07/4999-cdbb51d5-768x403.jpg)