快速结论:该报错 “Admin Panel Open Terminal integration saves to user settings endpoint instead of config endpoint” 通常发生在用户在用户个人设置面板(Settings → Integrations)而非管理员面板(Admin Panel → Settings → Integrations → Open Terminal)中添加 Open Terminal 连接时。优先检查你操作的是否为管理员面板(需管理员权限),并确认请求地址为 POST /api/v1/configs/terminal_servers 而非 POST /api/v1/users/user/settings/update。
适用环境:Open WebUI 0.11.0(ghcr.io/open-webui/open-webui:main Docker 镜像),部署在 Windows 11 + WSL2 Docker Desktop,Ollama 0.32.5,Helium 0.11.3.2 浏览器。
最快修复方案:从管理员面板(Admin Panel → Settings → Integrations → Open Terminal)点击 “+ Add Connection” 填写 URL、API Key 后保存。确认浏览器控制台或 Docker 日志显示 POST /api/v1/configs/terminal_servers 200 而非用户设置端点。
注意事项:本 Issue 已被标记为 #27621 的重复,修复已在 #27628 中合并。如果仍无法工作,请确认已升级至包含该修复的版本(≥ 0.11.0 后续补丁)。另外,添加后需确认数据库中 terminal_server.connections 非空:python3 -c "import sqlite3; db = sqlite3.connect('/app/backend/data/webui.db'); print(db.execute('SELECT value FROM config WHERE key=\"terminal_server.connections\"').fetchall())"。
问题场景
用户在 Open WebUI 管理后台的 “Admin Panel → Settings → Integrations → Open Terminal” 中添加终端连接并点击保存后,终端连接未成功持久化,AI 调用终端时提示 “Terminal server not found”。查看 Docker 日志发现请求发送到了 POST /api/v1/users/user/settings/update 而非预期的 POST /api/v1/configs/terminal_servers,导致 terminal_server.connections 始终为 []。
报错原文
POST /api/v1/users/user/settings/update HTTP/1.1" 200
# 期望应为:POST /api/v1/configs/terminal_servers HTTP/1.1" 200
# 数据库查询结果:terminal_server.connections = []
原因分析
Open WebUI 中存在两个不同的 “Integrations” 配置入口:管理员面板(Admin Panel → Settings → Integrations)和用户个人设置面板(Settings → Integrations)。用户个人设置面板中的终端连接保存路径为 POST /api/v1/users/user/settings/update,写入用户私有设置;只有管理员面板中的终端连接保存路径为 POST /api/v1/configs/terminal_servers,写入全局配置表。用户可能误在用户面板中操作,导致连接始终无法被后端全局查找。
另外,关联 Issue #27621 指出:即使连接写在正确位置,如果使用用户面板中添加的 “直接终端”(direct terminal),后端会因 URL 匹配与 ID 匹配不一致而同样报错。本 Issue 的原始报错(请求发错端点)明确证明操作发生在用户面板。
环境排查
- 确认当前 Open WebUI 版本:推荐 ≥ 0.11.0(本 Issue 重现于 0.11.0 main 镜像)。
- 确认部署方式:Docker(单容器或多容器共享网络均可复现)。
- 确认操作的界面路径:浏览器地址栏是否包含
?settings=integrations等参数?若从用户头像菜单进入则为用户面板,若从左侧 Admin 图标进入则为管理员面板。 - 可查看 Docker 日志中的 HTTP 请求路径,区分是
user/settings还是configs端点。
解决步骤
- 以管理员身份登录 Open WebUI。
- 点击左侧导航栏的 Admin(齿轮图标)进入管理员面板。
- 依次进入 Settings → Integrations → Open Terminal。
- 点击 “+ Add Connection”,填写 URL(如
http://open-terminal:8080)、API Key(如果使用 Bearer Auth),其他选项保持默认。 - 点击 Save 按钮。
- 确认浏览器没有 JavaScript 错误,同时查看 Docker 日志(
docker logs <容器名> -f)确认请求为POST /api/v1/configs/terminal_servers 200。 - 若仍失败,可尝试浏览器硬刷新(Ctrl+F5)后重新操作,排除前端缓存。
- (可选)进入容器执行数据库查询验证:
python3 -c "import sqlite3; db = sqlite3.connect('/app/backend/data/webui.db'); print(db.execute('SELECT value FROM config WHERE key=\"terminal_server.connections\"').fetchall())",应返回包含连接信息的 JSON 而非[]。
验证方法
在管理员面板添加终端连接后,使用 AI 对话并调用终端功能(如 “打开终端” 或运行 shell 命令),观察是否能正常连接。若仍提示 “Terminal server not found”,请检查终端容器是否可被 Open WebUI 后端访问(网络配置、API Key 等)。同时确认数据库中 terminal_server.connections 非空。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


