mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 10:58:17 -05:00
[GH-ISSUE #24260] issue: Model settings updates not persisted through admin settings interface #58912
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jasper-war on GitHub (Apr 30, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24260
Check Existing Issues
Installation Method
Docker
Open WebUI Version
0.9.2
Ollama Version (if applicable)
No response
Operating System
Ubuntu kernel 6.8.0-100
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
[Formulated by Claude after diagnostics, reviewed by myself]
Editing a custom model from Admin Panel → Settings → Models (pencil icon → change description / access list → Save & Update) should persist the changes via POST /api/v1/models/model/update and the new values should remain after reload.
Actual Behavior
[Formulated by Claude after diagnostics, reviewed by myself]
The save silently fails. The pencil-icon editor never calls /api/v1/models/model/update. Instead the frontend calls POST /api/v1/models/create, which the backend correctly rejects with 401 MODEL_ID_TAKEN because the model already exists. No error toast is shown (the catch swallows the rejection and returns null, suppressing the success toast). Reloading the page shows the model unchanged.
The companion request POST /api/v1/models/model/access/update returns 200 — so access-grant changes do hit the DB, but the rest of the model (description, name, params, meta, capabilities) snaps back, which makes the access change appear not to persist either.
Steps to Reproduce
Environment: Open WebUI v0.9.1 in Docker, PostgreSQL backend, OpenAI-compatible upstream (LiteLLM) providing the model list.
As an admin, go to Admin Panel → Settings → Models.
In the model list, click the pencil icon on any custom model whose row already exists in the model table (e.g. one with description/system prompt set, or with base_model_id set, or whose displayed id does not byte-equal the DB-stored id).
Change the description (or system prompt, or any meta/params field).
Click Save & Update.
Open DevTools → Network. Observe:
POST /api/v1/models/create → 401 Unauthorized with body {"detail": "Model ID is already in use ..."} (MODEL_ID_TAKEN).
POST /api/v1/models/model/access/update → 200 OK.
No POST /api/v1/models/model/update request.
Reload the page — the description / params change is gone.
Backend logs (docker logs amai-openwebui-1 | grep "/api/v1/models/") confirm the same pattern, with no Failed to update the model or Error binding parameter traces (so this is not the fixed #19335 bug, and not the #23960 500-on-extra-fields bug either).
Logs & Screenshots
In ~3 hours of an admin user attempting saves, the access log distribution is:
6 200 /api/v1/models/model/access/update
4 401 /api/v1/models/create
0 -- /api/v1/models/model/update ← never called
Additional Information
Probable root Cause
The bug is in src/lib/components/admin/Settings/Models.svelte — upsertModelHandler
@frenzybiscuit commented on GitHub (Apr 30, 2026):
I'm not sure about API access but changes do save and propagate when you edit in the admin -> models area.
You do need to hard refresh after saving to see the changes.
@jasper-war commented on GitHub (Apr 30, 2026):
You are right! Not very intuitive from a ux stance, but it works.