[GH-ISSUE #19335] issue: model page Save & Update button not working in latest dev version #57510

Closed
opened 2026-05-05 21:00:35 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @jtabox on GitHub (Nov 21, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/19335

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.6.36

Ollama Version (if applicable)

No response

Operating System

Ubuntu 24.04

Browser (if applicable)

Chrome 142.0.7444.176

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

Tried updating a model's parameters in its page in Workspace, clicked the Save & Update button that usually does what it says and closes the model page.

Actual Behavior

The Save & Update button doesn't do what it says. Specifically, it does nothing. Reloading the model page resets any changes made, they're not saved.

According to Chrome Devtools, the correct endpoint (/api/v1/models/model/update) is called with the correct payload, but the server response is null.

Multiple error lines spawn in the Docker logs, see below.

Everything else seems to be working fine, it's only this model update functionality that's broken,.

Steps to Reproduce

Running OWUI in a Docker container on an Ubuntu Server 24.04, serving it via https (behind NPM). Just updated to the latest dev version and the issue appeared.

  • Create a fresh model, save it.
  • Open the model page again (or any model's page) and try to change anything.
  • Click Save & Update

Logs & Screenshots

2025-11-21T04:39:11.887971825Z  2025-11-21 04:39:11.883 | ERROR    | open_webui.models.models:update_model_by_id:258 - Failed to update the model by id <built-in function id>: (sqlite3.ProgrammingError) Error binding parameter 7: type 'builtin_function_or_method' is not supported
2025-11-21T04:39:11.888001945Z  [SQL: UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?]
2025-11-21T04:39:11.888005377Z  [parameters: ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "capabilities": {"vision": true, "file_upload": true, "web_search": false, "image_generation": false, "code_interpreter": false, "citations": true, "status_updates": true, "usage": false}, "suggestion_prompts": null, "tags": []}', 'null', 1, <built-in function id>)]
2025-11-21T04:39:11.888010307Z  (Background on this error at: https://sqlalche.me/e/20/f405)
2025-11-21T04:39:11.888012602Z  Traceback (most recent call last):
2025-11-21T04:39:11.888014707Z
2025-11-21T04:39:11.888016850Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
2025-11-21T04:39:11.888028879Z      self.dialect.do_execute(
2025-11-21T04:39:11.888031273Z      │    │       └ <function DefaultDialect.do_execute at 0x7318a7c26ca0>
2025-11-21T04:39:11.891095582Z      │    └ <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x731880c09c90>
2025-11-21T04:39:11.891103736Z      └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891106576Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 942, in do_execute
2025-11-21T04:39:11.891109118Z      cursor.execute(statement, parameters)
2025-11-21T04:39:11.891111677Z      │      │       │          └ ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "...
2025-11-21T04:39:11.891114653Z      │      │       └ 'UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?'
2025-11-21T04:39:11.891117163Z      │      └ <method 'execute' of 'sqlite3.Cursor' objects>
2025-11-21T04:39:11.891119492Z      └ <sqlite3.Cursor object at 0x73183f770440>
2025-11-21T04:39:11.891121793Z
2025-11-21T04:39:11.891123916Z  sqlite3.ProgrammingError: Error binding parameter 7: type 'builtin_function_or_method' is not supported
2025-11-21T04:39:11.891126306Z
2025-11-21T04:39:11.891128326Z
2025-11-21T04:39:11.891130408Z  The above exception was the direct cause of the following exception:
2025-11-21T04:39:11.891132554Z
2025-11-21T04:39:11.891134610Z
2025-11-21T04:39:11.891136850Z  Traceback (most recent call last):
2025-11-21T04:39:11.891139054Z
2025-11-21T04:39:11.891142773Z    File "<frozen runpy>", line 198, in _run_module_as_main
2025-11-21T04:39:11.891145201Z    File "<frozen runpy>", line 88, in _run_code
2025-11-21T04:39:11.891147435Z    File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module>
2025-11-21T04:39:11.891156957Z      uvicorn.main()
2025-11-21T04:39:11.891159112Z      │       └ <Command main>
2025-11-21T04:39:11.891161368Z      └ <module 'uvicorn' from '/usr/local/lib/python3.11/site-packages/uvicorn/__init__.py'>
2025-11-21T04:39:11.891163679Z    File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__
2025-11-21T04:39:11.891165926Z      return self.main(*args, **kwargs)
2025-11-21T04:39:11.891168117Z             │    │     │       └ {}
2025-11-21T04:39:11.891170336Z             │    │     └ ()
2025-11-21T04:39:11.891172535Z             │    └ <function Command.main at 0x7318a983ae80>
2025-11-21T04:39:11.891174769Z             └ <Command main>
2025-11-21T04:39:11.891182735Z    File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
2025-11-21T04:39:11.891185171Z      rv = self.invoke(ctx)
2025-11-21T04:39:11.891187308Z           │    │      └ <click.core.Context object at 0x7318aa5c8690>
2025-11-21T04:39:11.891189619Z           │    └ <function Command.invoke at 0x7318a983ab60>
2025-11-21T04:39:11.891191818Z           └ <Command main>
2025-11-21T04:39:11.891200345Z    File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
2025-11-21T04:39:11.891202601Z      return ctx.invoke(self.callback, **ctx.params)
2025-11-21T04:39:11.891204801Z             │   │      │    │           │   └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
2025-11-21T04:39:11.891207324Z             │   │      │    │           └ <click.core.Context object at 0x7318aa5c8690>
2025-11-21T04:39:11.891209670Z             │   │      │    └ <function main at 0x7318a9520ae0>
2025-11-21T04:39:11.891211949Z             │   │      └ <Command main>
2025-11-21T04:39:11.891214147Z             │   └ <function Context.invoke at 0x7318a9839da0>
2025-11-21T04:39:11.891216332Z             └ <click.core.Context object at 0x7318aa5c8690>
2025-11-21T04:39:11.891218524Z    File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
2025-11-21T04:39:11.891220771Z      return callback(*args, **kwargs)
2025-11-21T04:39:11.891223009Z             │         │       └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
2025-11-21T04:39:11.891225434Z             │         └ ()
2025-11-21T04:39:11.891227615Z             └ <function main at 0x7318a9520ae0>
2025-11-21T04:39:11.891229831Z    File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 423, in main
2025-11-21T04:39:11.891232063Z      run(
2025-11-21T04:39:11.891234687Z      └ <function run at 0x7318a979d6c0>
2025-11-21T04:39:11.891236925Z    File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 593, in run
2025-11-21T04:39:11.891239167Z      server.run()
2025-11-21T04:39:11.891241331Z      │      └ <function Server.run at 0x7318a979cf40>
2025-11-21T04:39:11.891243578Z      └ <uvicorn.server.Server object at 0x7318a991bc90>
2025-11-21T04:39:11.891245815Z    File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 67, in run
2025-11-21T04:39:11.891248064Z      return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
2025-11-21T04:39:11.891250383Z             │           │    │             │                      │    │      └ <function Config.get_loop_factory at 0x7318a9921580>
2025-11-21T04:39:11.891252859Z             │           │    │             │                      │    └ <uvicorn.config.Config object at 0x7318a950bf90>
2025-11-21T04:39:11.891257648Z             │           │    │             │                      └ <uvicorn.server.Server object at 0x7318a991bc90>
2025-11-21T04:39:11.891260109Z             │           │    │             └ None
2025-11-21T04:39:11.891262311Z             │           │    └ <function Server.serve at 0x7318a979cfe0>
2025-11-21T04:39:11.891323185Z             │           └ <uvicorn.server.Server object at 0x7318a991bc90>
2025-11-21T04:39:11.891326298Z             └ <function asyncio_run at 0x7318a979cea0>
2025-11-21T04:39:11.891328590Z    File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 23, in asyncio_run
2025-11-21T04:39:11.891330901Z      return runner.run(main)
2025-11-21T04:39:11.891332995Z             │      │   └ <coroutine object Server.serve at 0x7318a94f57b0>
2025-11-21T04:39:11.891335369Z             │      └ <function Runner.run at 0x7318a9ae4fe0>
2025-11-21T04:39:11.891337610Z             └ <asyncio.runners.Runner object at 0x7318a95274d0>
2025-11-21T04:39:11.891339795Z    File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
2025-11-21T04:39:11.891342009Z      return self._loop.run_until_complete(task)
2025-11-21T04:39:11.891344260Z             │    │     │                  └ <Task pending name='Task-1' coro=<Server.serve() running at /usr/local/lib/python3.11/site-packages/uvicorn/server.py:71> wai...
2025-11-21T04:39:11.891346772Z             │    │     └ <cyfunction Loop.run_until_complete at 0x7318a9568340>
2025-11-21T04:39:11.891349006Z             │    └ <uvloop.Loop running=True closed=False debug=False>
2025-11-21T04:39:11.891351231Z             └ <asyncio.runners.Runner object at 0x7318a95274d0>
2025-11-21T04:39:11.891353445Z    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
2025-11-21T04:39:11.891356771Z      await self.app(scope, receive_or_disconnect, send_no_error)
2025-11-21T04:39:11.891360684Z            │    │   │      │                      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7317e0dfa340>
2025-11-21T04:39:11.891363322Z            │    │   │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891365866Z            │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891368204Z            │    └ <starlette_compress.CompressMiddleware object at 0x7318a909c860>
2025-11-21T04:39:11.891370481Z            └ <open_webui.main.RedirectMiddleware object at 0x73186db23290>
2025-11-21T04:39:11.891372769Z    File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
2025-11-21T04:39:11.891379860Z      return await self._zstd(scope, receive, send)
2025-11-21T04:39:11.891382183Z                   │    │     │      │        └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7317e0dfa340>
2025-11-21T04:39:11.891384753Z                   │    │     │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891387243Z                   │    │     └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891389675Z                   │    └ <member '_zstd' of 'CompressMiddleware' objects>
2025-11-21T04:39:11.891391985Z                   └ <starlette_compress.CompressMiddleware object at 0x7318a909c860>
2025-11-21T04:39:11.891394208Z    File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
2025-11-21T04:39:11.891396474Z      await self.app(scope, receive, wrapper)
2025-11-21T04:39:11.891398581Z            │    │   │      │        └ <function ZstdResponder.__call__.<locals>.wrapper at 0x73186c29afc0>
2025-11-21T04:39:11.891401014Z            │    │   │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891403417Z            │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891406038Z            │    └ <member 'app' of 'ZstdResponder' objects>
2025-11-21T04:39:11.891408317Z            └ <starlette_compress._zstd_legacy.ZstdResponder object at 0x73186d611440>
2025-11-21T04:39:11.891410593Z    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
2025-11-21T04:39:11.891412843Z      await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-11-21T04:39:11.891415016Z            │                            │    │    │     │      │        └ <function ZstdResponder.__call__.<locals>.wrapper at 0x73186c29afc0>
2025-11-21T04:39:11.891417548Z            │                            │    │    │     │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891420154Z            │                            │    │    │     └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891422542Z            │                            │    │    └ <starlette.requests.Request object at 0x73183edabb90>
2025-11-21T04:39:11.891424823Z            │                            │    └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x73186d8e6750>
2025-11-21T04:39:11.891429442Z            │                            └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x73186d8c6d10>
2025-11-21T04:39:11.891431883Z            └ <function wrap_app_handling_exceptions at 0x7318a6de8a40>
2025-11-21T04:39:11.891434117Z    File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-11-21T04:39:11.891436411Z      await app(scope, receive, sender)
2025-11-21T04:39:11.891438503Z            │   │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40>
2025-11-21T04:39:11.891441077Z            │   │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891443536Z            │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891445849Z            └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x73186d8e6750>
2025-11-21T04:39:11.891448454Z    File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
2025-11-21T04:39:11.891450785Z      await self.app(scope, receive, send)
2025-11-21T04:39:11.891452948Z            │    │   │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40>
2025-11-21T04:39:11.891455416Z            │    │   │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891457830Z            │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891460140Z            │    └ <fastapi.routing.APIRouter object at 0x73186d9ec590>
2025-11-21T04:39:11.891462357Z            └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x73186d8e6750>
2025-11-21T04:39:11.891464575Z    File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__
2025-11-21T04:39:11.891466893Z      await self.middleware_stack(scope, receive, send)
2025-11-21T04:39:11.891469051Z            │    │                │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40>
2025-11-21T04:39:11.891471518Z            │    │                │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891474005Z            │    │                └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891476346Z            │    └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x73186d9ec590>>
2025-11-21T04:39:11.891478791Z            └ <fastapi.routing.APIRouter object at 0x73186d9ec590>
2025-11-21T04:39:11.891482858Z    File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 736, in app
2025-11-21T04:39:11.891485151Z      await route.handle(scope, receive, send)
2025-11-21T04:39:11.891487387Z            │     │      │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40>
2025-11-21T04:39:11.891489822Z            │     │      │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891492582Z            │     │      └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891494981Z            │     └ <function Route.handle at 0x7318a6dea0c0>
2025-11-21T04:39:11.891497209Z            └ APIRoute(path='/api/v1/models/model/update', name='update_model_by_id', methods=['POST'])
2025-11-21T04:39:11.891499466Z    File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle
2025-11-21T04:39:11.891501643Z      await self.app(scope, receive, send)
2025-11-21T04:39:11.891503722Z            │    │   │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40>
2025-11-21T04:39:11.891506202Z            │    │   │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891508626Z            │    │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891510923Z            │    └ <function request_response.<locals>.app at 0x73186d6f31a0>
2025-11-21T04:39:11.891513268Z            └ APIRoute(path='/api/v1/models/model/update', name='update_model_by_id', methods=['POST'])
2025-11-21T04:39:11.891515489Z    File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 123, in app
2025-11-21T04:39:11.891517701Z      await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-11-21T04:39:11.891519859Z            │                            │    │        │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40>
2025-11-21T04:39:11.891522392Z            │                            │    │        │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891524941Z            │                            │    │        └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891527366Z            │                            │    └ <starlette.requests.Request object at 0x73183edaa990>
2025-11-21T04:39:11.891531698Z            │                            └ <function request_response.<locals>.app.<locals>.app at 0x73186c2985e0>
2025-11-21T04:39:11.891534215Z            └ <function wrap_app_handling_exceptions at 0x7318a6de8a40>
2025-11-21T04:39:11.891536442Z    File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-11-21T04:39:11.891539324Z      await app(scope, receive, sender)
2025-11-21T04:39:11.891541488Z            │   │      │        └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73183eb6bd80>
2025-11-21T04:39:11.891543930Z            │   │      └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480>
2025-11-21T04:39:11.891546429Z            │   └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '...
2025-11-21T04:39:11.891548736Z            └ <function request_response.<locals>.app.<locals>.app at 0x73186c2985e0>
2025-11-21T04:39:11.891551131Z    File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 109, in app
2025-11-21T04:39:11.891553390Z      response = await f(request)
2025-11-21T04:39:11.891555499Z                       │ └ <starlette.requests.Request object at 0x73183edaa990>
2025-11-21T04:39:11.891557775Z                       └ <function get_request_handler.<locals>.app at 0x73186d6f3060>
2025-11-21T04:39:11.891560076Z    File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 387, in app
2025-11-21T04:39:11.891562292Z      raw_response = await run_endpoint_function(
2025-11-21T04:39:11.891564476Z                           └ <function run_endpoint_function at 0x7318a6e0c040>
2025-11-21T04:39:11.891566762Z    File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 288, in run_endpoint_function
2025-11-21T04:39:11.891569009Z      return await dependant.call(**values)
2025-11-21T04:39:11.891571104Z                   │         │      └ {'user': UserModel(id='2bc5522a-e02e-45d4-9e32-f9694ef69a9b', name='JB', email='admin@localhost', username=None, role='admin'...
2025-11-21T04:39:11.891573521Z                   │         └ <function update_model_by_id at 0x73186e96d580>
2025-11-21T04:39:11.891575793Z                   └ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[ModelField(field_info=Body(Pydant...
2025-11-21T04:39:11.891578088Z
2025-11-21T04:39:11.891580161Z    File "/app/backend/open_webui/routers/models.py", line 323, in update_model_by_id
2025-11-21T04:39:11.891582551Z      model = Models.update_model_by_id(id, form_data)
2025-11-21T04:39:11.891584697Z              │      │                      └ ModelForm(id='test1', base_model_id='_OpenAI_.gpt-5.1', name='test1', meta=ModelMeta(profile_image_url='/static/favicon.png',...
2025-11-21T04:39:11.891587113Z              │      └ <function ModelsTable.update_model_by_id at 0x73186f5b1080>
2025-11-21T04:39:11.891591562Z              └ <open_webui.models.models.ModelsTable object at 0x73186f5bb810>
2025-11-21T04:39:11.891593884Z
2025-11-21T04:39:11.891595914Z  > File "/app/backend/open_webui/models/models.py", line 250, in update_model_by_id
2025-11-21T04:39:11.891598173Z      .update(model.model_dump(exclude={"id"}))
2025-11-21T04:39:11.891600408Z              │     └ <function BaseModel.model_dump at 0x7318a8885940>
2025-11-21T04:39:11.891602706Z              └ ModelForm(id='test1', base_model_id='_OpenAI_.gpt-5.1', name='test1', meta=ModelMeta(profile_image_url='/static/favicon.png',...
2025-11-21T04:39:11.891605004Z
2025-11-21T04:39:11.891607018Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 3295, in update
2025-11-21T04:39:11.891609282Z      result: CursorResult[Any] = self.session.execute(
2025-11-21T04:39:11.891611532Z                           │      │    │       └ <function Session.execute at 0x73187f1e9080>
2025-11-21T04:39:11.891613854Z                           │      │    └ <sqlalchemy.orm.session.Session object at 0x7317f0043f90>
2025-11-21T04:39:11.891616139Z                           │      └ <sqlalchemy.orm.query.Query object at 0x73183eb22610>
2025-11-21T04:39:11.891618387Z                           └ typing.Any
2025-11-21T04:39:11.891620663Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2365, in execute
2025-11-21T04:39:11.891622930Z      return self._execute_internal(
2025-11-21T04:39:11.891625010Z             │    └ <function Session._execute_internal at 0x73187f1e8d60>
2025-11-21T04:39:11.891627244Z             └ <sqlalchemy.orm.session.Session object at 0x7317f0043f90>
2025-11-21T04:39:11.891629478Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2251, in _execute_internal
2025-11-21T04:39:11.891631730Z      result: Result[Any] = compile_state_cls.orm_execute_statement(
2025-11-21T04:39:11.891633898Z                     │      │                 └ <classmethod(<function BulkORMUpdate.orm_execute_statement at 0x73187f164e00>)>
2025-11-21T04:39:11.891636361Z                     │      └ <class 'sqlalchemy.orm.bulk_persistence.BulkORMUpdate'>
2025-11-21T04:39:11.891638665Z                     └ typing.Any
2025-11-21T04:39:11.891640816Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/bulk_persistence.py", line 1648, in orm_execute_statement
2025-11-21T04:39:11.891643113Z      return super().orm_execute_statement(
2025-11-21T04:39:11.891645293Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 305, in orm_execute_statement
2025-11-21T04:39:11.891647572Z      result = conn.execute(
2025-11-21T04:39:11.891649637Z               │    └ <function Connection.execute at 0x7318a7d0e840>
2025-11-21T04:39:11.891653736Z               └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891656290Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1416, in execute
2025-11-21T04:39:11.891658602Z      return meth(
2025-11-21T04:39:11.891660728Z             └ <bound method ClauseElement._execute_on_connection of <sqlalchemy.sql.annotation.AnnotatedUpdate object at 0x7317e0e47fd0>>
2025-11-21T04:39:11.891663165Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection
2025-11-21T04:39:11.891665403Z      return connection._execute_clauseelement(
2025-11-21T04:39:11.891667503Z             │          └ <function Connection._execute_clauseelement at 0x7318a7d0eb60>
2025-11-21T04:39:11.891669768Z             └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891671984Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1638, in _execute_clauseelement
2025-11-21T04:39:11.891674211Z      ret = self._execute_context(
2025-11-21T04:39:11.891676328Z            │    └ <function Connection._execute_context at 0x7318a7d0ed40>
2025-11-21T04:39:11.891678574Z            └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891680792Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1843, in _execute_context
2025-11-21T04:39:11.891683015Z      return self._exec_single_context(
2025-11-21T04:39:11.891685075Z             │    └ <function Connection._exec_single_context at 0x7318a7d0ede0>
2025-11-21T04:39:11.891687270Z             └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891689447Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1983, in _exec_single_context
2025-11-21T04:39:11.891691662Z      self._handle_dbapi_exception(
2025-11-21T04:39:11.891693811Z      │    └ <function Connection._handle_dbapi_exception at 0x7318a7d0f060>
2025-11-21T04:39:11.891696043Z      └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891698293Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2352, in _handle_dbapi_exception
2025-11-21T04:39:11.891700510Z      raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2025-11-21T04:39:11.891702804Z            │                    │              │                 └ ProgrammingError("Error binding parameter 7: type 'builtin_function_or_method' is not supported")
2025-11-21T04:39:11.891705295Z            │                    │              └ (<class 'sqlite3.ProgrammingError'>, ProgrammingError("Error binding parameter 7: type 'builtin_function_or_method' is not su...
2025-11-21T04:39:11.891708201Z            │                    └ <method 'with_traceback' of 'BaseException' objects>
2025-11-21T04:39:11.891712514Z            └ ProgrammingError("(sqlite3.ProgrammingError) Error binding parameter 7: type 'builtin_function_or_method' is not supported")
2025-11-21T04:39:11.891714977Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
2025-11-21T04:39:11.891717232Z      self.dialect.do_execute(
2025-11-21T04:39:11.891719300Z      │    │       └ <function DefaultDialect.do_execute at 0x7318a7c26ca0>
2025-11-21T04:39:11.891721601Z      │    └ <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x731880c09c90>
2025-11-21T04:39:11.891723849Z      └ <sqlalchemy.engine.base.Connection object at 0x73186c666790>
2025-11-21T04:39:11.891726078Z    File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 942, in do_execute
2025-11-21T04:39:11.891728315Z      cursor.execute(statement, parameters)
2025-11-21T04:39:11.891730425Z      │      │       │          └ ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "...
2025-11-21T04:39:11.891733206Z      │      │       └ 'UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?'
2025-11-21T04:39:11.891735520Z      │      └ <method 'execute' of 'sqlite3.Cursor' objects>
2025-11-21T04:39:11.891737734Z      └ <sqlite3.Cursor object at 0x73183f770440>
2025-11-21T04:39:11.891739894Z
2025-11-21T04:39:11.891741932Z  sqlalchemy.exc.ProgrammingError: (sqlite3.ProgrammingError) Error binding parameter 7: type 'builtin_function_or_method' is not supported
2025-11-21T04:39:11.891744314Z  [SQL: UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?]
2025-11-21T04:39:11.891746678Z  [parameters: ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "capabilities": {"vision": true, "file_upload": true, "web_search": false, "image_generation": false, "code_interpreter": false, "citations": true, "status_updates": true, "usage": false}, "suggestion_prompts": null, "tags": []}', 'null', 1, <built-in function id>)]
2025-11-21T04:39:11.891750408Z  (Background on this error at: https://sqlalche.me/e/20/f405)
2025-11-21T04:39:11.891752606Z  2025-11-21 04:39:11.888 | INFO     | uvicorn.protocols.http.httptools_impl:send:476 - 10.0.10.1:0 - "POST /api/v1/models/model/update HTTP/1.1" 200

Additional Information

The issue occurs regardless of which LLM is selected for the model.

Originally created by @jtabox on GitHub (Nov 21, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/19335 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.36 ### Ollama Version (if applicable) _No response_ ### Operating System Ubuntu 24.04 ### Browser (if applicable) Chrome 142.0.7444.176 ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior Tried updating a model's parameters in its page in Workspace, clicked the `Save & Update` button that usually does what it says and closes the model page. ### Actual Behavior The `Save & Update` button doesn't do what it says. Specifically, it does nothing. Reloading the model page resets any changes made, they're not saved. According to Chrome Devtools, the correct endpoint (`/api/v1/models/model/update`) is called with the correct payload, but the server response is `null`. Multiple error lines spawn in the Docker logs, see below. Everything else seems to be working fine, it's only this model update functionality that's broken,. ### Steps to Reproduce Running OWUI in a Docker container on an Ubuntu Server 24.04, serving it via https (behind NPM). Just updated to the latest dev version and the issue appeared. - Create a fresh model, save it. - Open the model page again (or any model's page) and try to change anything. - Click `Save & Update` ### Logs & Screenshots ``` 2025-11-21T04:39:11.887971825Z 2025-11-21 04:39:11.883 | ERROR | open_webui.models.models:update_model_by_id:258 - Failed to update the model by id <built-in function id>: (sqlite3.ProgrammingError) Error binding parameter 7: type 'builtin_function_or_method' is not supported 2025-11-21T04:39:11.888001945Z [SQL: UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?] 2025-11-21T04:39:11.888005377Z [parameters: ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "capabilities": {"vision": true, "file_upload": true, "web_search": false, "image_generation": false, "code_interpreter": false, "citations": true, "status_updates": true, "usage": false}, "suggestion_prompts": null, "tags": []}', 'null', 1, <built-in function id>)] 2025-11-21T04:39:11.888010307Z (Background on this error at: https://sqlalche.me/e/20/f405) 2025-11-21T04:39:11.888012602Z Traceback (most recent call last): 2025-11-21T04:39:11.888014707Z 2025-11-21T04:39:11.888016850Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context 2025-11-21T04:39:11.888028879Z self.dialect.do_execute( 2025-11-21T04:39:11.888031273Z │ │ └ <function DefaultDialect.do_execute at 0x7318a7c26ca0> 2025-11-21T04:39:11.891095582Z │ └ <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x731880c09c90> 2025-11-21T04:39:11.891103736Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891106576Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 942, in do_execute 2025-11-21T04:39:11.891109118Z cursor.execute(statement, parameters) 2025-11-21T04:39:11.891111677Z │ │ │ └ ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "... 2025-11-21T04:39:11.891114653Z │ │ └ 'UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?' 2025-11-21T04:39:11.891117163Z │ └ <method 'execute' of 'sqlite3.Cursor' objects> 2025-11-21T04:39:11.891119492Z └ <sqlite3.Cursor object at 0x73183f770440> 2025-11-21T04:39:11.891121793Z 2025-11-21T04:39:11.891123916Z sqlite3.ProgrammingError: Error binding parameter 7: type 'builtin_function_or_method' is not supported 2025-11-21T04:39:11.891126306Z 2025-11-21T04:39:11.891128326Z 2025-11-21T04:39:11.891130408Z The above exception was the direct cause of the following exception: 2025-11-21T04:39:11.891132554Z 2025-11-21T04:39:11.891134610Z 2025-11-21T04:39:11.891136850Z Traceback (most recent call last): 2025-11-21T04:39:11.891139054Z 2025-11-21T04:39:11.891142773Z File "<frozen runpy>", line 198, in _run_module_as_main 2025-11-21T04:39:11.891145201Z File "<frozen runpy>", line 88, in _run_code 2025-11-21T04:39:11.891147435Z File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module> 2025-11-21T04:39:11.891156957Z uvicorn.main() 2025-11-21T04:39:11.891159112Z │ └ <Command main> 2025-11-21T04:39:11.891161368Z └ <module 'uvicorn' from '/usr/local/lib/python3.11/site-packages/uvicorn/__init__.py'> 2025-11-21T04:39:11.891163679Z File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__ 2025-11-21T04:39:11.891165926Z return self.main(*args, **kwargs) 2025-11-21T04:39:11.891168117Z │ │ │ └ {} 2025-11-21T04:39:11.891170336Z │ │ └ () 2025-11-21T04:39:11.891172535Z │ └ <function Command.main at 0x7318a983ae80> 2025-11-21T04:39:11.891174769Z └ <Command main> 2025-11-21T04:39:11.891182735Z File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main 2025-11-21T04:39:11.891185171Z rv = self.invoke(ctx) 2025-11-21T04:39:11.891187308Z │ │ └ <click.core.Context object at 0x7318aa5c8690> 2025-11-21T04:39:11.891189619Z │ └ <function Command.invoke at 0x7318a983ab60> 2025-11-21T04:39:11.891191818Z └ <Command main> 2025-11-21T04:39:11.891200345Z File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke 2025-11-21T04:39:11.891202601Z return ctx.invoke(self.callback, **ctx.params) 2025-11-21T04:39:11.891204801Z │ │ │ │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ... 2025-11-21T04:39:11.891207324Z │ │ │ │ └ <click.core.Context object at 0x7318aa5c8690> 2025-11-21T04:39:11.891209670Z │ │ │ └ <function main at 0x7318a9520ae0> 2025-11-21T04:39:11.891211949Z │ │ └ <Command main> 2025-11-21T04:39:11.891214147Z │ └ <function Context.invoke at 0x7318a9839da0> 2025-11-21T04:39:11.891216332Z └ <click.core.Context object at 0x7318aa5c8690> 2025-11-21T04:39:11.891218524Z File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke 2025-11-21T04:39:11.891220771Z return callback(*args, **kwargs) 2025-11-21T04:39:11.891223009Z │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ... 2025-11-21T04:39:11.891225434Z │ └ () 2025-11-21T04:39:11.891227615Z └ <function main at 0x7318a9520ae0> 2025-11-21T04:39:11.891229831Z File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 423, in main 2025-11-21T04:39:11.891232063Z run( 2025-11-21T04:39:11.891234687Z └ <function run at 0x7318a979d6c0> 2025-11-21T04:39:11.891236925Z File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 593, in run 2025-11-21T04:39:11.891239167Z server.run() 2025-11-21T04:39:11.891241331Z │ └ <function Server.run at 0x7318a979cf40> 2025-11-21T04:39:11.891243578Z └ <uvicorn.server.Server object at 0x7318a991bc90> 2025-11-21T04:39:11.891245815Z File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 67, in run 2025-11-21T04:39:11.891248064Z return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory()) 2025-11-21T04:39:11.891250383Z │ │ │ │ │ │ └ <function Config.get_loop_factory at 0x7318a9921580> 2025-11-21T04:39:11.891252859Z │ │ │ │ │ └ <uvicorn.config.Config object at 0x7318a950bf90> 2025-11-21T04:39:11.891257648Z │ │ │ │ └ <uvicorn.server.Server object at 0x7318a991bc90> 2025-11-21T04:39:11.891260109Z │ │ │ └ None 2025-11-21T04:39:11.891262311Z │ │ └ <function Server.serve at 0x7318a979cfe0> 2025-11-21T04:39:11.891323185Z │ └ <uvicorn.server.Server object at 0x7318a991bc90> 2025-11-21T04:39:11.891326298Z └ <function asyncio_run at 0x7318a979cea0> 2025-11-21T04:39:11.891328590Z File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 23, in asyncio_run 2025-11-21T04:39:11.891330901Z return runner.run(main) 2025-11-21T04:39:11.891332995Z │ │ └ <coroutine object Server.serve at 0x7318a94f57b0> 2025-11-21T04:39:11.891335369Z │ └ <function Runner.run at 0x7318a9ae4fe0> 2025-11-21T04:39:11.891337610Z └ <asyncio.runners.Runner object at 0x7318a95274d0> 2025-11-21T04:39:11.891339795Z File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run 2025-11-21T04:39:11.891342009Z return self._loop.run_until_complete(task) 2025-11-21T04:39:11.891344260Z │ │ │ └ <Task pending name='Task-1' coro=<Server.serve() running at /usr/local/lib/python3.11/site-packages/uvicorn/server.py:71> wai... 2025-11-21T04:39:11.891346772Z │ │ └ <cyfunction Loop.run_until_complete at 0x7318a9568340> 2025-11-21T04:39:11.891349006Z │ └ <uvloop.Loop running=True closed=False debug=False> 2025-11-21T04:39:11.891351231Z └ <asyncio.runners.Runner object at 0x7318a95274d0> 2025-11-21T04:39:11.891353445Z File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro 2025-11-21T04:39:11.891356771Z await self.app(scope, receive_or_disconnect, send_no_error) 2025-11-21T04:39:11.891360684Z │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7317e0dfa340> 2025-11-21T04:39:11.891363322Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891365866Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891368204Z │ └ <starlette_compress.CompressMiddleware object at 0x7318a909c860> 2025-11-21T04:39:11.891370481Z └ <open_webui.main.RedirectMiddleware object at 0x73186db23290> 2025-11-21T04:39:11.891372769Z File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__ 2025-11-21T04:39:11.891379860Z return await self._zstd(scope, receive, send) 2025-11-21T04:39:11.891382183Z │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7317e0dfa340> 2025-11-21T04:39:11.891384753Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891387243Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891389675Z │ └ <member '_zstd' of 'CompressMiddleware' objects> 2025-11-21T04:39:11.891391985Z └ <starlette_compress.CompressMiddleware object at 0x7318a909c860> 2025-11-21T04:39:11.891394208Z File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__ 2025-11-21T04:39:11.891396474Z await self.app(scope, receive, wrapper) 2025-11-21T04:39:11.891398581Z │ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x73186c29afc0> 2025-11-21T04:39:11.891401014Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891403417Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891406038Z │ └ <member 'app' of 'ZstdResponder' objects> 2025-11-21T04:39:11.891408317Z └ <starlette_compress._zstd_legacy.ZstdResponder object at 0x73186d611440> 2025-11-21T04:39:11.891410593Z File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ 2025-11-21T04:39:11.891412843Z await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) 2025-11-21T04:39:11.891415016Z │ │ │ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x73186c29afc0> 2025-11-21T04:39:11.891417548Z │ │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891420154Z │ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891422542Z │ │ │ └ <starlette.requests.Request object at 0x73183edabb90> 2025-11-21T04:39:11.891424823Z │ │ └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x73186d8e6750> 2025-11-21T04:39:11.891429442Z │ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x73186d8c6d10> 2025-11-21T04:39:11.891431883Z └ <function wrap_app_handling_exceptions at 0x7318a6de8a40> 2025-11-21T04:39:11.891434117Z File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app 2025-11-21T04:39:11.891436411Z await app(scope, receive, sender) 2025-11-21T04:39:11.891438503Z │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40> 2025-11-21T04:39:11.891441077Z │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891443536Z │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891445849Z └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x73186d8e6750> 2025-11-21T04:39:11.891448454Z File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ 2025-11-21T04:39:11.891450785Z await self.app(scope, receive, send) 2025-11-21T04:39:11.891452948Z │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40> 2025-11-21T04:39:11.891455416Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891457830Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891460140Z │ └ <fastapi.routing.APIRouter object at 0x73186d9ec590> 2025-11-21T04:39:11.891462357Z └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x73186d8e6750> 2025-11-21T04:39:11.891464575Z File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ 2025-11-21T04:39:11.891466893Z await self.middleware_stack(scope, receive, send) 2025-11-21T04:39:11.891469051Z │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40> 2025-11-21T04:39:11.891471518Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891474005Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891476346Z │ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x73186d9ec590>> 2025-11-21T04:39:11.891478791Z └ <fastapi.routing.APIRouter object at 0x73186d9ec590> 2025-11-21T04:39:11.891482858Z File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 736, in app 2025-11-21T04:39:11.891485151Z await route.handle(scope, receive, send) 2025-11-21T04:39:11.891487387Z │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40> 2025-11-21T04:39:11.891489822Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891492582Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891494981Z │ └ <function Route.handle at 0x7318a6dea0c0> 2025-11-21T04:39:11.891497209Z └ APIRoute(path='/api/v1/models/model/update', name='update_model_by_id', methods=['POST']) 2025-11-21T04:39:11.891499466Z File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle 2025-11-21T04:39:11.891501643Z await self.app(scope, receive, send) 2025-11-21T04:39:11.891503722Z │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40> 2025-11-21T04:39:11.891506202Z │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891508626Z │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891510923Z │ └ <function request_response.<locals>.app at 0x73186d6f31a0> 2025-11-21T04:39:11.891513268Z └ APIRoute(path='/api/v1/models/model/update', name='update_model_by_id', methods=['POST']) 2025-11-21T04:39:11.891515489Z File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 123, in app 2025-11-21T04:39:11.891517701Z await wrap_app_handling_exceptions(app, request)(scope, receive, send) 2025-11-21T04:39:11.891519859Z │ │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73186c29bc40> 2025-11-21T04:39:11.891522392Z │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891524941Z │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891527366Z │ │ └ <starlette.requests.Request object at 0x73183edaa990> 2025-11-21T04:39:11.891531698Z │ └ <function request_response.<locals>.app.<locals>.app at 0x73186c2985e0> 2025-11-21T04:39:11.891534215Z └ <function wrap_app_handling_exceptions at 0x7318a6de8a40> 2025-11-21T04:39:11.891536442Z File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app 2025-11-21T04:39:11.891539324Z await app(scope, receive, sender) 2025-11-21T04:39:11.891541488Z │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x73183eb6bd80> 2025-11-21T04:39:11.891543930Z │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7317e0dfa480> 2025-11-21T04:39:11.891546429Z │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.20.0.10', 8080), '... 2025-11-21T04:39:11.891548736Z └ <function request_response.<locals>.app.<locals>.app at 0x73186c2985e0> 2025-11-21T04:39:11.891551131Z File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 109, in app 2025-11-21T04:39:11.891553390Z response = await f(request) 2025-11-21T04:39:11.891555499Z │ └ <starlette.requests.Request object at 0x73183edaa990> 2025-11-21T04:39:11.891557775Z └ <function get_request_handler.<locals>.app at 0x73186d6f3060> 2025-11-21T04:39:11.891560076Z File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 387, in app 2025-11-21T04:39:11.891562292Z raw_response = await run_endpoint_function( 2025-11-21T04:39:11.891564476Z └ <function run_endpoint_function at 0x7318a6e0c040> 2025-11-21T04:39:11.891566762Z File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 288, in run_endpoint_function 2025-11-21T04:39:11.891569009Z return await dependant.call(**values) 2025-11-21T04:39:11.891571104Z │ │ └ {'user': UserModel(id='2bc5522a-e02e-45d4-9e32-f9694ef69a9b', name='JB', email='admin@localhost', username=None, role='admin'... 2025-11-21T04:39:11.891573521Z │ └ <function update_model_by_id at 0x73186e96d580> 2025-11-21T04:39:11.891575793Z └ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[ModelField(field_info=Body(Pydant... 2025-11-21T04:39:11.891578088Z 2025-11-21T04:39:11.891580161Z File "/app/backend/open_webui/routers/models.py", line 323, in update_model_by_id 2025-11-21T04:39:11.891582551Z model = Models.update_model_by_id(id, form_data) 2025-11-21T04:39:11.891584697Z │ │ └ ModelForm(id='test1', base_model_id='_OpenAI_.gpt-5.1', name='test1', meta=ModelMeta(profile_image_url='/static/favicon.png',... 2025-11-21T04:39:11.891587113Z │ └ <function ModelsTable.update_model_by_id at 0x73186f5b1080> 2025-11-21T04:39:11.891591562Z └ <open_webui.models.models.ModelsTable object at 0x73186f5bb810> 2025-11-21T04:39:11.891593884Z 2025-11-21T04:39:11.891595914Z > File "/app/backend/open_webui/models/models.py", line 250, in update_model_by_id 2025-11-21T04:39:11.891598173Z .update(model.model_dump(exclude={"id"})) 2025-11-21T04:39:11.891600408Z │ └ <function BaseModel.model_dump at 0x7318a8885940> 2025-11-21T04:39:11.891602706Z └ ModelForm(id='test1', base_model_id='_OpenAI_.gpt-5.1', name='test1', meta=ModelMeta(profile_image_url='/static/favicon.png',... 2025-11-21T04:39:11.891605004Z 2025-11-21T04:39:11.891607018Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 3295, in update 2025-11-21T04:39:11.891609282Z result: CursorResult[Any] = self.session.execute( 2025-11-21T04:39:11.891611532Z │ │ │ └ <function Session.execute at 0x73187f1e9080> 2025-11-21T04:39:11.891613854Z │ │ └ <sqlalchemy.orm.session.Session object at 0x7317f0043f90> 2025-11-21T04:39:11.891616139Z │ └ <sqlalchemy.orm.query.Query object at 0x73183eb22610> 2025-11-21T04:39:11.891618387Z └ typing.Any 2025-11-21T04:39:11.891620663Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2365, in execute 2025-11-21T04:39:11.891622930Z return self._execute_internal( 2025-11-21T04:39:11.891625010Z │ └ <function Session._execute_internal at 0x73187f1e8d60> 2025-11-21T04:39:11.891627244Z └ <sqlalchemy.orm.session.Session object at 0x7317f0043f90> 2025-11-21T04:39:11.891629478Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2251, in _execute_internal 2025-11-21T04:39:11.891631730Z result: Result[Any] = compile_state_cls.orm_execute_statement( 2025-11-21T04:39:11.891633898Z │ │ └ <classmethod(<function BulkORMUpdate.orm_execute_statement at 0x73187f164e00>)> 2025-11-21T04:39:11.891636361Z │ └ <class 'sqlalchemy.orm.bulk_persistence.BulkORMUpdate'> 2025-11-21T04:39:11.891638665Z └ typing.Any 2025-11-21T04:39:11.891640816Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/bulk_persistence.py", line 1648, in orm_execute_statement 2025-11-21T04:39:11.891643113Z return super().orm_execute_statement( 2025-11-21T04:39:11.891645293Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 305, in orm_execute_statement 2025-11-21T04:39:11.891647572Z result = conn.execute( 2025-11-21T04:39:11.891649637Z │ └ <function Connection.execute at 0x7318a7d0e840> 2025-11-21T04:39:11.891653736Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891656290Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1416, in execute 2025-11-21T04:39:11.891658602Z return meth( 2025-11-21T04:39:11.891660728Z └ <bound method ClauseElement._execute_on_connection of <sqlalchemy.sql.annotation.AnnotatedUpdate object at 0x7317e0e47fd0>> 2025-11-21T04:39:11.891663165Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection 2025-11-21T04:39:11.891665403Z return connection._execute_clauseelement( 2025-11-21T04:39:11.891667503Z │ └ <function Connection._execute_clauseelement at 0x7318a7d0eb60> 2025-11-21T04:39:11.891669768Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891671984Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1638, in _execute_clauseelement 2025-11-21T04:39:11.891674211Z ret = self._execute_context( 2025-11-21T04:39:11.891676328Z │ └ <function Connection._execute_context at 0x7318a7d0ed40> 2025-11-21T04:39:11.891678574Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891680792Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1843, in _execute_context 2025-11-21T04:39:11.891683015Z return self._exec_single_context( 2025-11-21T04:39:11.891685075Z │ └ <function Connection._exec_single_context at 0x7318a7d0ede0> 2025-11-21T04:39:11.891687270Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891689447Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1983, in _exec_single_context 2025-11-21T04:39:11.891691662Z self._handle_dbapi_exception( 2025-11-21T04:39:11.891693811Z │ └ <function Connection._handle_dbapi_exception at 0x7318a7d0f060> 2025-11-21T04:39:11.891696043Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891698293Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2352, in _handle_dbapi_exception 2025-11-21T04:39:11.891700510Z raise sqlalchemy_exception.with_traceback(exc_info[2]) from e 2025-11-21T04:39:11.891702804Z │ │ │ └ ProgrammingError("Error binding parameter 7: type 'builtin_function_or_method' is not supported") 2025-11-21T04:39:11.891705295Z │ │ └ (<class 'sqlite3.ProgrammingError'>, ProgrammingError("Error binding parameter 7: type 'builtin_function_or_method' is not su... 2025-11-21T04:39:11.891708201Z │ └ <method 'with_traceback' of 'BaseException' objects> 2025-11-21T04:39:11.891712514Z └ ProgrammingError("(sqlite3.ProgrammingError) Error binding parameter 7: type 'builtin_function_or_method' is not supported") 2025-11-21T04:39:11.891714977Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context 2025-11-21T04:39:11.891717232Z self.dialect.do_execute( 2025-11-21T04:39:11.891719300Z │ │ └ <function DefaultDialect.do_execute at 0x7318a7c26ca0> 2025-11-21T04:39:11.891721601Z │ └ <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x731880c09c90> 2025-11-21T04:39:11.891723849Z └ <sqlalchemy.engine.base.Connection object at 0x73186c666790> 2025-11-21T04:39:11.891726078Z File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 942, in do_execute 2025-11-21T04:39:11.891728315Z cursor.execute(statement, parameters) 2025-11-21T04:39:11.891730425Z │ │ │ └ ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "... 2025-11-21T04:39:11.891733206Z │ │ └ 'UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?' 2025-11-21T04:39:11.891735520Z │ └ <method 'execute' of 'sqlite3.Cursor' objects> 2025-11-21T04:39:11.891737734Z └ <sqlite3.Cursor object at 0x73183f770440> 2025-11-21T04:39:11.891739894Z 2025-11-21T04:39:11.891741932Z sqlalchemy.exc.ProgrammingError: (sqlite3.ProgrammingError) Error binding parameter 7: type 'builtin_function_or_method' is not supported 2025-11-21T04:39:11.891744314Z [SQL: UPDATE model SET base_model_id=?, name=?, params=?, meta=?, access_control=?, is_active=? WHERE model.id = ?] 2025-11-21T04:39:11.891746678Z [parameters: ('_OpenAI_.gpt-5.1', 'test1', '{"system": "whatevers"}', '{"profile_image_url": "/static/favicon.png", "description": null, "capabilities": {"vision": true, "file_upload": true, "web_search": false, "image_generation": false, "code_interpreter": false, "citations": true, "status_updates": true, "usage": false}, "suggestion_prompts": null, "tags": []}', 'null', 1, <built-in function id>)] 2025-11-21T04:39:11.891750408Z (Background on this error at: https://sqlalche.me/e/20/f405) 2025-11-21T04:39:11.891752606Z 2025-11-21 04:39:11.888 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 10.0.10.1:0 - "POST /api/v1/models/model/update HTTP/1.1" 200 ``` ### Additional Information The issue occurs regardless of which LLM is selected for the model.
GiteaMirror added the bug label 2026-05-05 21:00:35 -05:00
Author
Owner

@tjbck commented on GitHub (Nov 21, 2025):

Good catch, addressed in dev!

<!-- gh-comment-id:3561660760 --> @tjbck commented on GitHub (Nov 21, 2025): Good catch, addressed in dev!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#57510