mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 19:08:59 -05:00
[GH-ISSUE #23960] issue: Model clone (Save & Create) and model update (Save & Update) return 500 due to unsanitized payload fields #58794
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 @ekiine233 on GitHub (Apr 21, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23960
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.9.1
Ollama Version (if applicable)
No response
Operating System
Ubuntu 24.04
Browser (if applicable)
Microsoft Edge 147.0 (Windows)
Confirmation
README.md.Expected Behavior
Model clone ("Save & Create") and model update ("Save & Update") should complete successfully and persist the model configuration.
Actual Behavior
Both operations return 500 Internal Server Error. The frontend sends the full model object including fields the backend does not accept in the create/update request body.
openai,permission,connection_type,owned_by,root,parent,objectfrom the source modeluser: null,write_access: trueBoth operations succeed when called via curl with only the required fields.
Steps to Reproduce
Environment: Docker (ghcr.io/open-webui/open-webui:main), v0.9.1, external OpenAI-compatible API (vLLM)
Clone reproduction:
Update reproduction:
curl -X POST http://localhost:8080/api/v1/models/create
-H "Content-Type: application/json"
-H "Authorization: Bearer "
-d '{"id":"test-clone-001","name":"Test Clone","base_model_id":"","meta":{"description":"test"},"params":{}}'
Key finding: curl with minimal payload → 200 OK. UI with full model object → 500.
Logs & Screenshots
docker logs— the 500 appears to be caught silently at the Pydantic validation layerAdditional Information
The frontend appears to serialize the entire model object (including read-only and relational fields) when submitting create/update requests. The backend rejects these extra fields, but the error is not surfaced in logs or in the API response body.
Confirmed problematic fields:
Suggested fix: sanitize the payload in the frontend before submission, or configure the backend to ignore unknown fields.
@tjbck commented on GitHub (Apr 24, 2026):
Addressed in dev.