
bug: Manual scoring silently clamps values outside the allowed range instead of showing a validation error
快速结论:该问题在 Langfuse 的手动评分 UI 中,当输入超出评分范围的值后,UI 会静默替换为边界值(例如 10001 变成 1000),没有任何错误提示。但经社区复现和讨论确认,当前版本(v3.195.0 OSS)下实际未复现该行为——UI 显示的是之前保存的评分值,而非真正的“钳位”。如果遇到类似现象,建议优先检查:评分表单中是否显示的是历史保存值,而非当前输入值。
问题场景
用户在 Langfuse 自托管实例(v3.195.0 OSS)上使用手动评分功能,配置评分范围(例如 0–1000),输入超出范围的值(例如 10001),在移出输入框或提交时,值被静默改为边界值 1000,且无任何验证错误提示。
报错原文
# 这不是一个报错,而是 UI 行为的描述
# 用户输入 10001 后,UI 自动将值改为 1000,且无任何警告或错误提示
原因分析
可能原因:用户观察到 UI 显示的值被“修正”,但实际原因可能是 UI 回显了之前保存的有效评分值(例如之前保存的 1000),而非对当前输入值进行了钳位。在 Issue 的后续讨论中,提交者 RHarish1 经过更仔细的测试后自行撤回报告,认为可能是误解,而不是一个真正的 bug。
注:该问题被标记为 🐞❔ unconfirmed bug,在关闭前未被社区其他用户复现或证实。
环境排查
- Langfuse 版本:v3.195.0 OSS
- 部署方式:自托管(Langfuse Cloud 未报告该问题)
- 浏览器/UI 版本:未明确,需确认是否与缓存或前端状态管理有关
解决步骤
- 检查是否是历史值回显:先确认输入框内显示的值是否真的是刚刚输入的内容,还是之前保存过的有效值。可以在新评分表单(未保存过历史值)中测试,直接输入超出范围的值并观察行为。
- 手动测试提交:输入超范围值后,不点击“提交”,而是直接通过 API 提交评分(例如
POST /api/scores),确认服务端是否拒绝超范围分值的请求——如果服务端正确拒绝(返回验证错误),则问题仅存在于前端展示。 - 清除缓存并重试:关闭页面、清除浏览器缓存 / 刷新页面后再输入测试,排除 UI 状态残留。
- 考虑升级版本:如果当前使用的 Langfuse 版本较老,可以尝试升级到最新版本(截至 Issue 关闭时,v3.195.0 未确认存在该问题,但后续版本可能有相关修复或改进)。
验证方法
在手动评分界面输入一个明显超出评分范围的值(例如评分范围 0-100,输入 200),观察是否有验证错误提示、提交按钮是否被禁用。如果没有出现提示,且值被静默修改,可以尝试升级版本或重建表单后再测试。如果值保持不变(显示 200),但提交后服务端返回错误,则说明服务端验证正常,问题仅局限在 UI 视觉反馈层面。



