issue: How to get logs from under the hood of fetch_url?

这个报错通常出现在 Open WebUI 内置 fetch_url 工具抓取某些网页时卡住、整个对话流程被挂起,而容器日志只看到 uvicorn 的请求行、看不到 fetch_url 内部过程的场景。优先排查的方向是:确认 fetch_url 是否使用了远程 Playwright / 浏览器后端,并

快速结论:这个报错通常出现在 Open WebUI 内置 fetch_url 工具抓取某些网页时卡住、整个对话流程被挂起,而容器日志只看到 uvicorn 的请求行、看不到 fetch_url 内部过程的场景。优先排查的方向是:确认 fetch_url 是否使用了远程 Playwright / 浏览器后端,并把日志级别压到能覆盖该后端的层,而不是只依赖 uvicorn 访问日志。

适用环境:Issue 已确认的环境为 Docker 安装的 Open WebUI v0.11,操作系统 Ubuntu 24,浏览器为 any,Ollama 版本未提供。

最快修复方案:暂无确认的一步修复方案。原始 Issue 讨论中并未给出经维护者验证的具体日志开关或修复步骤,评论仅关联到若干相关 Issue(fetch_url 挂起、DEBUG 日志缺失等),可作为排查线索,但不等于已验证修复。

注意事项:Issue 中已说明 GLOBAL_LOG_LEVEL: DEBUGHTTPX_LOG_LEVEL: trace 都没有输出与 fetch_url 内部流程相关的信息,docker logs -f --tail 50 open-webui 也只返回 uvicorn 访问日志。因此不要预期单纯调高这两个变量就能看到 fetch_url 内部细节;相关 Issue 提到的 Playwright/浏览器路径问题属于“可能原因”,尚未在本 Issue 中确认。

问题场景

用户在 Docker 部署的 Open WebUI v0.11(Ubuntu 24)中使用内置 fetch_url 工具抓取网页时,某些 URL 会卡住,并导致整个工作流无限期挂起。同一个 URL 通过 curl 可以正常访问,但经过 fetch_url 时卡住,因此需要查看 fetch_url 工具调用内部的日志来定位是哪一个环节阻塞。

用户尝试过 docker logs -f --tail 50 open-webuiGLOBAL_LOG_LEVEL: DEBUG 以及 HTTPX_LOG_LEVEL: trace,均无法看到与 fetch_url 内部处理相关的日志,日志里只有 uvicorn 的请求状态行(如 POST /api/chat/completionsGET /_app/version.json)。

报错原文

2026-09-19 09:19:24.255 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 195.8.50.83:0 - "POST /api/tasks/chat/81f2adfd-2487-4fd6-9a8e-2337697b79bd/stop HTTP/1.1" 200
2026-09-19 09:19:34.128 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 195.8.50.83:0 - "POST /api/chat/completions HTTP/1.1" 200
2026-09-19 09:19:52.277 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 195.8.50.83:0 - "GET /_app/version.json HTTP/1.1" 304
2026-09-19 09:20:52.987 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 195.8.50.83:0 - "GET /_app/version.json HTTP/1.1" 304
2026-09-19 09:21:53.265 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 195.8.50.83:0 - "GET /_app/version.json HTTP/1.1" 304

Issue 标题原文:issue: How to get logs from under the hood of fetch_url?

原因分析

可能原因:fetch_url 的抓取逻辑(尤其是网页渲染 / 浏览器抓取路径)与 uvicorn 访问日志不在同一输出层,所以默认日志只记录 HTTP 请求状态,不记录工具内部的抓取过程。用户即便把 GLOBAL_LOG_LEVELHTTPX_LOG_LEVEL 调到 DEBUG / trace,也仍然看不到 fetch_url 的处理细节。

评论中关联到的 #29773 指出 fetch_url 在使用远程 Playwright 时可能在浏览器和网络都空闲的情况下无限期挂起,这提示卡住的位置可能在浏览器/渲染层而非普通 HTTP 请求层。但这只是相关 Issue 的描述,本 Issue 未确认用户的 fetch_url 是否走了远程 Playwright,因此只能作为“可能原因”参考。

另一个可能方向是日志配置本身:关联 Issue #3802 报告过即使开启 DEBUG 级别也拿不到 DEBUG 日志,说明 Open WebUI 的日志输出层级或容器日志采集方式可能存在覆盖不到的部分。

环境排查

  • 确认 Open WebUI 的安装方式是否为 Docker,以及实际运行的镜像版本是否为 v0.11。
  • 确认操作系统版本(Issue 中为 Ubuntu 24)。
  • 确认 fetch_url 当前使用的是哪种抓取后端:普通 HTTP 抓取,还是通过 Playwright / 浏览器进行渲染抓取。
  • 如果使用 Playwright,确认是本地浏览器还是远程 Playwright 服务,并检查该浏览器服务自身是否输出了日志。
  • 确认已设置的日志相关环境变量(GLOBAL_LOG_LEVELHTTPX_LOG_LEVEL)实际是否被容器内进程读取到。
  • 确认查看日志的方式:docker logs 只能看到容器 stdout/stderr 中实际写出的内容,若日志被写到容器内文件则不会被采集。

解决步骤

  1. 先用 curl 验证目标 URL 在容器所在网络环境下可正常访问,以区分是网络问题还是 fetch_url 处理问题(Issue 中用户已验证 curl 正常、fetch_url 卡住)。
  2. 确认 fetch_url 是否依赖 Playwright / 浏览器后端。如果是,重点查看该后端自身进程或容器的日志,而不是只盯着 Open WebUI 主容器的 uvicorn 日志(可优先尝试)。
  3. 参考关联 Issue #29773(fetch_url 在远程 Playwright 下无限期挂起)的讨论,检查是否存在浏览器空闲但抓取不返回的情况。
  4. 参考关联 Issue #26791(fetch_url 在 Websearch 中失败)中涉及 fetch_url 的后端日志记录方式,确认是否能看到该工具路径下的日志输出。
  5. 参考关联 Issue #3802(开启 DEBUG 后仍无 DEBUG 日志),排查日志级别设置是否真正生效,而不是被其它配置覆盖。
  6. 如果以上仍无法拿到 fetch_url 内部日志,可在 Issue 中补充说明确切的抓取后端类型与日志配置,以便维护者确认日志覆盖范围。注意:本 Issue 在 2026-09-20 关闭时并未给出已验证的日志开关或修复补丁。

验证方法

如果问题解决,应能在日志中看到 fetch_url 抓取过程中的内部步骤(而非只有 uvicorn 的 POST / GET 状态行),并且对同一个之前会卡住的 URL 抓取时能够正常返回或给出明确的超时/错误信息,而不是无限期挂起。若仍只能看到 uvicorn 访问日志,说明日志层仍未覆盖 fetch_url 内部流程。

参考来源

open-webui/open-webui #30243

关联 Issue:#29773 fetch_url can remain stuck indefinitely with remote Playwright#26791 fetch_url fails in Websearch in 0.10.2#3802 no DEBUG log

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 24545

发表回复

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