快速结论:该问题发生在 Open WebUI 的频道消息输入框中输入 @ 触发用户提及列表时,旧查询的搜索结果响应晚于新查询到达,会覆盖当前列表并丢失本应匹配的用户。优先确认是否已升级到包含修复提交 dcff244f9 的 dev 版本。
适用环境:Open WebUI(Git Clone 安装方式),dev 分支 @ 7229fac0c;前端竞态问题,与浏览器类型无关(Chromium 系浏览器验证);Ollama 不适用。
最快修复方案:升级到包含 dcff244f9 提交的 Open WebUI dev 版本。该修复在 getUserList 中通过 Svelte 的 getAbortSignal 将 abort 信号传递给两个请求,并在信号触发时直接返回、不再赋值 _users,从而取消过期请求。
注意事项:该修复已在 dev 分支验证(883c7434f),但尚未提及是否已合并到稳定版本;如果你使用的是非 dev 分支,可能需要等待版本发布或手动应用该提交。
问题场景
在 Open WebUI 的频道消息输入框中输入 @ 触发用户提及弹窗时,快速输入或退格导致查询条件变化,旧查询的搜索结果响应晚于新查询返回,弹窗列表被旧响应覆盖,丢失当前输入应匹配的用户。
报错原文
issue: channel mention list drops users matching the current query when a stale search response arrives late
原因分析
问题根因在 src/lib/components/channel/MessageInput/MentionList.svelte 的 getUserList 函数中:当搜索请求返回时,_users 被无条件赋值,没有检查当前查询条件是否仍与发起请求时的一致。在快速输入或退格时,较早请求的响应可能晚于较新请求返回,旧响应的数据覆盖新响应的数据,导致当前查询应匹配的用户从列表中消失。这是一个典型的竞态条件(race condition),而非浏览器特定问题。
环境排查
- 确认 Open WebUI 版本是否为
dev@7229fac0c或更早版本(该问题已在后续提交修复)。 - 确认是否为 Git Clone 安装方式(Issue 中报告的环境)。
- 检查浏览器是否为 Chromium 系(虽然 Issue 标记为“frontend race, not browser specific”,但复现环境为 Chromium 系)。
- 确认 Ollama 不适用(本问题与 Ollama 无关)。
解决步骤
- 将 Open WebUI 升级到 dev 分支最新版本,确保包含提交
dcff244f9或更新版本。 - 如果使用非 dev 分支,可尝试手动应用修复提交,或在 dev 分支上验证问题是否已解决。
- 升级后,在频道中复现原始场景(输入
@li后立即退格为@l),确认提及列表不会再被旧响应覆盖。
验证方法
按照 Issue 中的复现步骤操作:在频道中输入 @li 后立即退格为 @l,观察提及弹窗是否始终显示所有匹配当前输入的用户(如 Light 和 Ollama)。修复前,弹窗可能在旧响应到达后仅显示 Light;修复后应始终显示所有匹配用户。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug]: MooncakeStoreConnector stores invalid recurrent states with mamba_cache_mode=align, causing silent output corruption](https://www.chat-gpts.plus/wp-content/uploads/2026/08/53084-6479b0bb-768x403.jpg)

