issue: Allow User Location can block chat submission for tens of seconds before /api/chat/completions is sent

当 Open WebUI 开启“Allow User Location”功能后,浏览器 Geolocation API 可能长时间无法返回位置信息,导致聊天消息在发送 /api/chat/completions 请求前被阻塞数十秒甚至更久。优先排查前端代码中同步等待地理位置获取的逻辑,或暂时关闭该功

快速结论:当 Open WebUI 开启“Allow User Location”功能后,浏览器 Geolocation API 可能长时间无法返回位置信息,导致聊天消息在发送 /api/chat/completions 请求前被阻塞数十秒甚至更久。优先排查前端代码中同步等待地理位置获取的逻辑,或暂时关闭该功能作为临时方案。

适用环境:Open WebUI v0.11.3(Docker 安装)、Windows 11、Firefox 155.0。问题在不同模型、不同反向代理环境下均可复现。

最快修复方案:暂无确认的一步修复方案。最直接的临时缓解措施是关闭“Allow User Location”设置,18 次连续测试消息均能快速完成。

注意事项:当前维护者认为该行为是设计意图(用户配置了位置占位符,因此必须等待位置获取)。但 Issue 提交者已在 GitHub 上提出异议,认为这会严重影响用户体验。部分关闭现有 Issue 的做法可能导致问题未被持续跟踪。

问题场景

在 Open WebUI 设置中启用“Allow User Location”后,用户在浏览器中提交聊天消息时,界面只会显示光标指示符(|),实际 /api/chat/completions 请求需等待数十秒才发出。该问题在不同模型(含本地模型与云端模型)、不同反代(Synology、Caddy)上均可复现,且不依赖推理后端。

报错原文

issue: Allow User Location can block chat submission for tens of seconds before /api/chat/completions is sent

原因分析

可能原因:Open WebUI 前端在提交聊天消息时,同步等待浏览器定位结果,调用链为 submitPrompt → sendMessage → sendMessageSocket → await getAndUpdateUserLocation() → generateOpenAIChatCompletion()。其中 getUserPosition() 调用 navigator.geolocation.getCurrentPosition(resolve, reject) 时未指定任何 geolocation 选项,导致浏览器 API 使用默认行为,即没有应用自定义超时,也不复用缓存位置。

环境排查

  • 确认 Open WebUI 版本是否为 v0.11.3 或更高版本(问题在当前 main 分支仍存在)
  • 使用 Firefox(或其他浏览器)打开开发者工具,检查网络面板中用户消息创建时间与实际发送 POST 请求间的时间差
  • 确认系统中“Allow User Location”是否开启
  • 测试不同浏览器(Firefox、Chrome、Edge)下是否表现一致

解决步骤

  1. 暂时关闭“Allow User Location”功能,验证聊天消息是否可以快速提交
  2. 如确认问题由定位功能导致,检查浏览器中定位权限设置,尝试允许或拒绝后观察变化
  3. 准备复现环境后,使用 Firefox HAR 捕获网络请求,测量时间间隔并保存日志
  4. 检查 Open WebUI 前端源码中 getUserPosition() 的调用方式,确认是否传入了 timeout 或 maximumAge 参数(可优先尝试)

验证方法

分别启用和禁用“Allow User Location”功能,各连续发送 18 条测试消息,确认开启后可在 3 条消息内触发超时,关闭后不再复现。同时使用网络监控工具确认 /api/chat/completions 请求的发送时间与用户消息创建时间之间的间隔。

参考来源

open-webui/open-webui #29583

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 21675

发表回复

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