快速结论:该报错发生在外部预设模型(preset: true、connection_type: external)被误当作 Workspace Model 处理时。点击编辑按钮会跳转到 /workspace/models/edit 并请求 /api/v1/models/model,最终返回 404,界面显示误导性的权限错误。优先排查模型是否被错误地打上 preset 标记,并更新到修复版本。
适用环境:Open WebUI(Docker 安装,main 分支构建 d3e8bf3405e848cfba377814d0aa7ba7290e414d);Ubuntu 24.04 操作系统。Issue 中未提及 Python、CUDA、显卡版本,无证据不补写。
最快修复方案:暂无确认的一步修复方案。该问题需更新到包含修复(对合并时剥离 Open WebUI 自有字段的改动)的版本。上游已提交 PR #29693 与 #29694,可等待合入 dev/main 分支后升级。
注意事项:社区提出的临时方案(在 Models.svelte 中屏蔽外部预设模型的编辑入口/按钮)只治标不治本,且需手动改动源码;根本原因是模型对象中混入了 preset、connection_type、upstream_id 等上游字段,应优先通过版本升级解决。同时,`/api/v1/models/model` 接口对不存在的模型返回 404 也属预期行为,但不应将外部模型路由到该接口。
问题场景
用户在 Open WebUI 的 Docker 版本(main 分支)中配置了外部模型(例如 qwen3.7-plus,connection_type 为 external),该模型通过 /api/v1/models 正常返回并可在聊天中使用。但管理员在 Settings → Models 页面点击该模型右侧的 Edit 按钮时,页面被路由到 /workspace/models/edit?id=qwen3.7-plus,随后该页面请求 /api/v1/models/model?id=qwen3.7-plus 返回 404,界面显示”You do not have permission to edit this model”的误导性错误。
报错原文
GET /api/v1/models/model?id=qwen3.7-plus
{"detail":"We could not find what you're looking for :/"}
You do not have permission to edit this model
原因分析
可能原因:模型列表接口(/api/v1/models)返回的外部模型对象中混入了 Open WebUI 内部的 preset、connection_type、upstream_id 等字段(即上游模型列表字段泄漏到模型对象中)。前端 openModelHandler 在 src/lib/components/admin/Settings/Models.svelte 中只要判断 isPresetModel 为真,就统一将所有 model 路由到 /workspace/models/edit,而编辑页会查询 /api/v1/models/model。
对于外部预设模型(preset: true, connection_type: “external”),其后端并没有对应的 Workspace Model 数据行,因此该接口返回 404,前端误报为“无权限编辑”。这是一个“外部模型被误当作工作区模型进行编辑/查询”的代码路径缺陷,而非权限配置问题。
环境排查
- Open WebUI 安装方式:Docker,确认版本为 main 分支(build d3e8bf3405e848cfba377814d0aa7ba7290e414d)或更早。若已使用 dev 分支,需同步上游最新代码。
- 操作系统:Ubuntu 24.04(Issue 已确认)。
- 涉及的外部模型字段:preset、connection_type(external)、upstream_id,检查 /api/v1/models 返回的 JSON 中是否包含这些不应出现在模型对象中的字段。
- 浏览器开发者工具:观察点击编辑按钮后的跳转 URL 及 GET /api/v1/models/model 的响应状态码。
- 确认该模型在 Workspace Models 中不存在同名数据行(这是问题出现的前提之一)。
解决步骤
- 优先升级到修复版本:上游维护者已指出根因——模型合并时未剥离 Open WebUI 自有字段,已在 PR #29693 / #29694 中提出修复(尤其是合并时剥离 OWUI-owned keys 的方案)。请更新 Open WebUI 到包含上述修复的版本(结合 Issue 关闭日期和 PR 合入状态确认)。
- 临时规避(仅限 dev 分支,需手动改动源码):若暂时无法升级,可优先尝试在
src/lib/components/admin/Settings/Models.svelte中,将openModelHandler对isPresetModel的判断增加一个条件:当preset === true && connection_type === 'external'时,不跳转到 /workspace/models/edit,而是弹出 toast 提示或隐藏编辑按钮。此改动仅为绕过界面入口,未解决字段泄漏的根因。 - 核实模型字段:检查 /api/v1/models 返回 JSON 中是否包含 preset、connection_type、upstream_id 等字段;若不需要可考虑在外部模型配置流程中核查字段来源。
- 避免误操作:在修复前,管理员不要通过 Settings → Models 点击这类外部预设模型的 Edit 按钮,以免产生误导性的权限错误。
验证方法
升级到修复版本或应用临时补丁后,重新打开 Settings → Models,找到该外部预设模型并点击 Edit。若问题已解决,界面不会再跳转到 /workspace/models/edit?id=...,或者对应的外部模型编辑入口会跳转到合适的外部模型配置界面;同时 GET /api/v1/models/model 对这类模型不应再返回 404。开发者可检查浏览器 Network 面板确认请求未被发送,或返回正常的外部模型配置数据。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


