RuntimeError: no running event loop

该报错通常出现在 Open WebUI 连接本地 HTTP 的 llama 服务时,错误信息中的 ssl:default 是 aiohttp 库的固定输出格式,实际原因是 DNS 查询超时。优先排查容器间网络连通性及 DNS 解析。

快速结论:该报错通常出现在 Open WebUI 连接本地 HTTP 的 llama 服务时,错误信息中的 ssl:default 是 aiohttp 库的固定输出格式,实际原因是 DNS 查询超时。优先排查容器间网络连通性及 DNS 解析。

适用环境:Open WebUI 0.11.0(Docker)、llama.cpp、Linux、无 SSL 配置。

最快修复方案:暂无确认的一步修复方案。可优先尝试确认容器在同一用户自定义网络内,并在 Open WebUI 容器内使用 getent hosts llama 验证解析,以及 curl -v http://llama:8000/models 验证连通性。若均正常,可尝试降级 Open WebUI 至上一个版本。

注意事项:该报错在升级至 0.11.0 后出现,可能与新引入的 aiodns 依赖有关,但官方未给出确认修复。设置环境变量 AIOHTTP_CLIENT_SESSION_SSL=False 可能对其他 SSL 场景有效,但在本 Issue 中未验证。

问题场景

用户在 Docker 中运行 Open WebUI 0.11.0,连接本地无 SSL 的 llama 容器(服务地址 http://llama:8000)。更新后短时间内连接断开,报错提示 DNS 超时。

报错原文

Connection error: Cannot connect to host llama:8000 ssl:default [Timeout while contacting DNS servers]

原因分析

错误中的 ssl:default 是 aiohttp 库的固定输出格式,无论是否使用 TLS 都会显示,因此不代表真正启用了 SSL。实际错误是 DNS 查询超时。可能原因:容器内 DNS 解析不稳定,或是 Open WebUI 0.11.0 新增的 aiodns 依赖导致解析行为变化,使 aiohttp 无法正确解析主机名 llama

环境排查

  • Open WebUI 版本:0.11.0(Docker 部署)
  • llama 容器:llama.cpp,监听 8000 端口,无 SSL
  • 网络模式:用户自定义 bridge 网络(如 ai_backend_network
  • 在 Open WebUI 容器内运行 getent hosts llama 确认 DNS 解析是否正常
  • 运行 curl -v http://llama:8000/models 确认网络连通性

解决步骤

  1. 确认两个容器连接在同一个用户自定义 Docker 网络下(不是默认 bridge)。
  2. 进入 Open WebUI 容器终端(docker exec -it <container_id> /bin/bash),执行 getent hosts llama,检查是否返回正确的 IP 地址。
  3. 执行 curl -v http://llama:8000/models,确认能够正常获取模型列表。
  4. 如果上述步骤均正常,但 Open WebUI 仍报错,可尝试降级到 0.10.x 版本(此操作在 Issue 讨论中被提及,但未给出具体版本号)。
  5. (可选)设置环境变量 AIOHTTP_CLIENT_SESSION_SSL=False 后重启容器,参考相关 Issue #23503,但本 Issue 中未验证。
  6. 检查容器的 DNS 配置(/etc/resolv.conf),确保上游 DNS 可访问且不超时。

验证方法

Open WebUI 不再出现连接中断,能够正常加载并使用 llama 模型,同时日志中不再出现 “Timeout while contacting DNS servers” 错误。

参考来源

open-webui/open-webui #27652

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15586

发表回复

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