[GH-ISSUE #24484] [BUG] v0.9.3 - Notes completely broken: cannot open or create notes (TypeError: is_pinned) #123623

Closed
opened 2026-05-21 02:57:34 -05:00 by GiteaMirror · 19 comments
Owner

Originally created by @Mikkelka on GitHub (May 9, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24484

Originally assigned to: @Classic298 on GitHub.

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.9.3

Ollama Version (if applicable)

No response

Operating System

Ugreen nas

Browser (if applicable)

No response

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

Notes should be fully functional: existing notes should open when clicked, and new notes should be creatable.

Actual Behavior

After upgrading to v0.9.3, the Notes feature is completely broken in two ways:

  1. Clicking any existing note returns a 500 error and redirects to the home page
  2. Creating a new note also fails with a 400 error

Steps to Reproduce

Issue 1 – Opening an existing note:

  1. Run Open WebUI v0.9.3 via Docker
  2. Navigate to Notes
  3. Click on any existing note
  4. App returns 500 and redirects to home

Issue 2 – Creating a new note:

  1. Run Open WebUI v0.9.3 via Docker
  2. Navigate to Notes
  3. Click "New Note"
  4. App returns 400

Logs & Screenshots

Error 1 – Reading a note (GET /api/v1/notes/<id> → 500):

TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'

File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
    return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)

Error 2 – Creating a note (POST /api/v1/notes/create → 400):

TypeError: 'is_pinned' is an invalid keyword argument for Note

File "/app/backend/open_webui/models/notes.py", line 143, in insert_new_note
    new_note = Note(**note.model_dump(exclude={'access_grants'}))

Additional Information

Root cause: is_pinned exists in the Pydantic model (NoteModel) but not in the SQLAlchemy database model (Note). This causes failures in two places:

  • routers/notes.py line 297: is_pinned passed twice to NoteResponse (once via model_dump(), once explicitly)
  • models/notes.py line 143: is_pinned passed to SQLAlchemy Note constructor where the column doesn't exist

Suggested fix for routers/notes.py line 297:

note_data = note.model_dump()
note_data['is_pinned'] = note.id in pinned_note_ids
return NoteResponse(**note_data, write_access=write_access)

Suggested fix for models/notes.py line 143:

new_note = Note(**note.model_dump(exclude={'access_grants', 'is_pinned'}))

Workaround: Downgrade to v0.9.2.

Originally created by @Mikkelka on GitHub (May 9, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/24484 Originally assigned to: @Classic298 on GitHub. ### 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.9.3 ### Ollama Version (if applicable) _No response_ ### Operating System Ugreen nas ### Browser (if applicable) _No response_ ### 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 Notes should be fully functional: existing notes should open when clicked, and new notes should be creatable. ### Actual Behavior After upgrading to v0.9.3, the Notes feature is completely broken in two ways: 1. Clicking any existing note returns a 500 error and redirects to the home page 2. Creating a new note also fails with a 400 error ### Steps to Reproduce Issue 1 – Opening an existing note: 1. Run Open WebUI v0.9.3 via Docker 2. Navigate to Notes 3. Click on any existing note 4. App returns 500 and redirects to home Issue 2 – Creating a new note: 1. Run Open WebUI v0.9.3 via Docker 2. Navigate to Notes 3. Click "New Note" 4. App returns 400 ### Logs & Screenshots Error 1 – Reading a note (`GET /api/v1/notes/<id>` → 500): ``` TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) ``` Error 2 – Creating a note (`POST /api/v1/notes/create` → 400): ``` TypeError: 'is_pinned' is an invalid keyword argument for Note File "/app/backend/open_webui/models/notes.py", line 143, in insert_new_note new_note = Note(**note.model_dump(exclude={'access_grants'})) ``` ### Additional Information Root cause: `is_pinned` exists in the Pydantic model (`NoteModel`) but not in the SQLAlchemy database model (`Note`). This causes failures in two places: - `routers/notes.py` line 297: `is_pinned` passed twice to `NoteResponse` (once via `model_dump()`, once explicitly) - `models/notes.py` line 143: `is_pinned` passed to SQLAlchemy `Note` constructor where the column doesn't exist Suggested fix for `routers/notes.py` line 297: ```python note_data = note.model_dump() note_data['is_pinned'] = note.id in pinned_note_ids return NoteResponse(**note_data, write_access=write_access) ``` Suggested fix for `models/notes.py` line 143: ```python new_note = Note(**note.model_dump(exclude={'access_grants', 'is_pinned'})) ``` Workaround: Downgrade to v0.9.2.
GiteaMirror added the bug label 2026-05-21 02:57:34 -05:00
Author
Owner

@owui-terminator[bot] commented on GitHub (May 9, 2026):

⚠️ Missing Issue Title Prefix

@Mikkelka, your issue title is missing a categorising prefix (e.g. bug:, feat:, docs:).

Please update the title to lead with one of:

  • bug: bug report or error
  • feat: feature request or enhancement
  • docs: documentation issue
  • question: usage question
  • help: support request

Example: bug: Login fails when the password contains special characters

<!-- gh-comment-id:4411965021 --> @owui-terminator[bot] commented on GitHub (May 9, 2026): # ⚠️ Missing Issue Title Prefix @Mikkelka, your issue title is missing a categorising prefix (e.g. `bug:`, `feat:`, `docs:`). Please update the title to lead with one of: - **bug**: bug report or error - **feat**: feature request or enhancement - **docs**: documentation issue - **question**: usage question - **help**: support request Example: `bug: Login fails when the password contains special characters`
Author
Owner

@owui-terminator[bot] commented on GitHub (May 9, 2026):

⚠️ Invalid Issue Title

@Mikkelka, your issue title is too short, too few words, or a generic placeholder — it doesn't tell maintainers what's actually being reported or requested.

Please update the title to be at least 10 characters and 2 words, and to describe the actual issue. Bare placeholders like bug, feat:, or issue make triage difficult and slow down everyone.

Example: bug: Login fails when password contains special characters

<!-- gh-comment-id:4411965042 --> @owui-terminator[bot] commented on GitHub (May 9, 2026): # ⚠️ Invalid Issue Title @Mikkelka, your issue title is too short, too few words, or a generic placeholder — it doesn't tell maintainers what's actually being reported or requested. Please update the title to be **at least 10 characters and 2 words**, and to describe the actual issue. Bare placeholders like `bug`, `feat:`, or `issue` make triage difficult and slow down everyone. Example: `bug: Login fails when password contains special characters`
Author
Owner

@owui-terminator[bot] commented on GitHub (May 9, 2026):

🔍 Related Issues Found

I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions:

  1. 🟣 #22680 issue: has_public_read_access_grant is not defined in notes.py
    Both issues are 500 errors in open_webui/routers/notes.py that make notes inaccessible after a version upgrade. That one is caused by a missing helper import on note fetch; this one is a different get_note_by_id bug involving is_pinned being passed twice, but it is the same endpoint and the same user-visible failure mode.
    by R-omk · bug

  2. 🟣 #22740 issue: each_key_duplicate Error and Broken Infinite Scroll on Notes Page
    This is another Notes-page regression in the same area of the codebase, showing that note listing/rendering had breakage around recent versions. While the symptom differs (infinite scroll / duplicate keys rather than a note-detail 500), it is still directly related to Notes functionality regressions in v0.8.x/v0.9.x.
    by silentoplayz · bug, confirmed issue


💡 If your issue is a duplicate, please close it and add any additional details to the existing issue instead.

This comment was generated automatically. React with 👍 if helpful, 👎 if not.

<!-- gh-comment-id:4411971124 --> @owui-terminator[bot] commented on GitHub (May 9, 2026): <!-- terminator-bot:related-issues-reply --> 🔍 **Related Issues Found** I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions: 1. 🟣 [#22680](https://github.com/open-webui/open-webui/issues/22680) **issue: has_public_read_access_grant is not defined in notes.py** *Both issues are 500 errors in `open_webui/routers/notes.py` that make notes inaccessible after a version upgrade. That one is caused by a missing helper import on note fetch; this one is a different `get_note_by_id` bug involving `is_pinned` being passed twice, but it is the same endpoint and the same user-visible failure mode.* *by R-omk · `bug`* 2. 🟣 [#22740](https://github.com/open-webui/open-webui/issues/22740) **issue: `each_key_duplicate` Error and Broken Infinite Scroll on Notes Page** *This is another Notes-page regression in the same area of the codebase, showing that note listing/rendering had breakage around recent versions. While the symptom differs (infinite scroll / duplicate keys rather than a note-detail 500), it is still directly related to Notes functionality regressions in `v0.8.x`/`v0.9.x`.* *by silentoplayz · `bug`, `confirmed issue`* --- 💡 If your issue is a duplicate, please close it and add any additional details to the existing issue instead. *This comment was generated automatically.* React with 👍 if helpful, 👎 if not.
Author
Owner

@ABLomas commented on GitHub (May 9, 2026):

Same on 0.9.4, symptoms the same, but error slightly different (also did docker pull/update), there's nothing about "multiple values":

  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
    return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)

Maybe additional database migration scripts required?

EDIT: OK, similar message is here, also:

  File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
    return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
  TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'

So probably the same issue
Release notes says we should do database schema migration:
⚠️ Database Migrations: This release includes database schema changes; we strongly recommend backing up your database and all associated data before upgrading in production environments. If you are running a multi-worker, multi-server, or load-balanced deployment, all instances must be updated simultaneously, rolling updates are not supported and will cause application failures due to schema incompatibility.
but there's no additional info how to do that in docker environment (or if it's required)

<!-- gh-comment-id:4412189488 --> @ABLomas commented on GitHub (May 9, 2026): Same on 0.9.4, symptoms the same, but error slightly different (also did docker pull/update), there's nothing about "multiple values": ``` File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) ``` Maybe additional database migration scripts required? EDIT: OK, similar message is here, also: ``` File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' ``` So probably the same issue Release notes says we should do database schema migration: `⚠️ Database Migrations: This release includes database schema changes; we strongly recommend backing up your database and all associated data before upgrading in production environments. If you are running a multi-worker, multi-server, or load-balanced deployment, all instances must be updated simultaneously, rolling updates are not supported and will cause application failures due to schema incompatibility.` but there's no additional info how to do that in docker environment (or if it's required)
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

Release notes says we should do database schema migration: but there's no additional info how to do that in docker environment (or if it's required)

No it doesn't say you should do the database schema migration. On startup, database schema migratons are applied automatically. It only says to do a backup of the database in case the schema migration goes wrong

<!-- gh-comment-id:4412217164 --> @Classic298 commented on GitHub (May 9, 2026): > Release notes says we should do database schema migration: but there's no additional info how to do that in docker environment (or if it's required) No it doesn't say you should do the database schema migration. On startup, database schema migratons are applied automatically. It only says to do a backup of the database in case the schema migration goes wrong
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

investigating

<!-- gh-comment-id:4412217505 --> @Classic298 commented on GitHub (May 9, 2026): investigating
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

can reproduce.

<!-- gh-comment-id:4412225489 --> @Classic298 commented on GitHub (May 9, 2026): can reproduce.
Author
Owner

@zkzkzk2015 commented on GitHub (May 9, 2026):

``openwebui | Exception in ASGI application
openwebui | Traceback (most recent call last):
openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
openwebui | result = await app( # type: ignore[func-returns-value]
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
openwebui | return await self.app(scope, receive, send)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in call
openwebui | await super().call(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
openwebui | await self.middleware_stack(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
openwebui | await self.app(scope, receive, _send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in call
openwebui | await self.app(scope, receive, send_wrapper)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in call
openwebui | await self.app(scope, receive, send_with_timing)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
openwebui | with recv_stream, send_stream, collapse_excgroups():
openwebui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in exit
openwebui | self.gen.throw(typ, value, traceback)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
openwebui | response = await self.dispatch_func(request, call_next)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
openwebui | response = await call_next(request)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
openwebui | raise app_exc from app_exc.cause or app_exc.context
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
openwebui | await self.app(scope, receive_or_disconnect, send_no_error)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/init.py", line 104, in call
openwebui | return await self._zstd(scope, receive, send)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in call
openwebui | await self.app(scope, receive, wrapper)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
openwebui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
openwebui | await app(scope, receive, sender)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
openwebui | await self.middleware_stack(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
openwebui | await route.handle(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
openwebui | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
openwebui | await app(scope, receive, sender)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
openwebui | response = await f(request)
openwebui | ^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
openwebui | raw_response = await run_endpoint_function(
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
openwebui | return await dependant.call(**values)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
openwebui | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'
openwebui | 2026-05-09 09:51:52.561 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/configs/banners HTTP/1.1" 200
openwebui | 2026-05-09 09:51:52.562 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302
openwebui | 2026-05-09 09:51:52.566 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/tools/ HTTP/1.1" 200
openwebui | 2026-05-09 09:51:58.388 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
openwebui | 2026-05-09 09:51:58.393 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /static/favicon.png HTTP/1.1" 304
openwebui | 2026-05-09 09:51:58.565 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200
openwebui | 2026-05-09 09:51:58.683 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
openwebui | 2026-05-09 09:51:58.870 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200
openwebui | 2026-05-09 09:52:14.563 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/7215e7f6-b208-4b2f-bf56-5e61411ece05 HTTP/1.1" 500
openwebui | Exception in ASGI application
openwebui | Traceback (most recent call last):
openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
openwebui | result = await app( # type: ignore[func-returns-value]
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
openwebui | return await self.app(scope, receive, send)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in call
openwebui | await super().call(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
openwebui | await self.middleware_stack(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
openwebui | await self.app(scope, receive, _send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in call
openwebui | await self.app(scope, receive, send_wrapper)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in call
openwebui | await self.app(scope, receive, send_with_timing)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
openwebui | with recv_stream, send_stream, collapse_excgroups():
openwebui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in exit
openwebui | self.gen.throw(typ, value, traceback)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
openwebui | response = await self.dispatch_func(request, call_next)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
openwebui | response = await call_next(request)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
openwebui | raise app_exc from app_exc.cause or app_exc.context
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
openwebui | await self.app(scope, receive_or_disconnect, send_no_error)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/init.py", line 104, in call
openwebui | return await self._zstd(scope, receive, send)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in call
openwebui | await self.app(scope, receive, wrapper)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
openwebui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
openwebui | await app(scope, receive, sender)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
openwebui | await self.middleware_stack(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
openwebui | await route.handle(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
openwebui | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
openwebui | await app(scope, receive, sender)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
openwebui | response = await f(request)
openwebui | ^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
openwebui | raw_response = await run_endpoint_function(
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
openwebui | return await dependant.call(**values)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
openwebui | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'
openwebui | 2026-05-09 09:52:14.675 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/configs/banners HTTP/1.1" 200
openwebui | 2026-05-09 09:52:14.677 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302
openwebui | 2026-05-09 09:52:14.699 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/tools/ HTTP/1.1" 200
openwebui | 2026-05-09 09:52:17.070 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/7215e7f6-b208-4b2f-bf56-5e61411ece05 HTTP/1.1" 500
openwebui | Exception in ASGI application
openwebui | Traceback (most recent call last):
openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
openwebui | result = await app( # type: ignore[func-returns-value]
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
openwebui | return await self.app(scope, receive, send)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in call
openwebui | await super().call(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
openwebui | await self.middleware_stack(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
openwebui | await self.app(scope, receive, _send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in call
openwebui | await self.app(scope, receive, send_wrapper)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in call
openwebui | await self.app(scope, receive, send_with_timing)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
openwebui | with recv_stream, send_stream, collapse_excgroups():
openwebui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in exit
openwebui | self.gen.throw(typ, value, traceback)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
openwebui | response = await self.dispatch_func(request, call_next)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
openwebui | response = await call_next(request)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
openwebui | raise app_exc from app_exc.cause or app_exc.context
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
openwebui | await self.app(scope, receive_or_disconnect, send_no_error)
openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/init.py", line 104, in call
openwebui | return await self._zstd(scope, receive, send)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in call
openwebui | await self.app(scope, receive, wrapper)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
openwebui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
openwebui | await app(scope, receive, sender)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
openwebui | await self.middleware_stack(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
openwebui | await route.handle(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
openwebui | await self.app(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
openwebui | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
openwebui | raise exc
openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
openwebui | await app(scope, receive, sender)
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
openwebui | response = await f(request)
openwebui | ^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
openwebui | raw_response = await run_endpoint_function(
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
openwebui | return await dependant.call(**values)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
openwebui | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'
openwebui | 2026-05-09 09:52:17.175 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302

I am on openwebui 0.9.4 in docker. Clicking on Notes shows all notes I produced. But when I click on a single one I am immediately redirected to my chat window.

<!-- gh-comment-id:4412230628 --> @zkzkzk2015 commented on GitHub (May 9, 2026): ``openwebui | Exception in ASGI application openwebui | Traceback (most recent call last): openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi openwebui | result = await app( # type: ignore[func-returns-value] openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ openwebui | return await self.app(scope, receive, send) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ openwebui | await super().__call__(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ openwebui | await self.middleware_stack(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ openwebui | await self.app(scope, receive, _send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ openwebui | await self.app(scope, receive, send_wrapper) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ openwebui | await self.app(scope, receive, send_with_timing) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ openwebui | with recv_stream, send_stream, collapse_excgroups(): openwebui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ openwebui | self.gen.throw(typ, value, traceback) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ openwebui | response = await self.dispatch_func(request, call_next) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch openwebui | response = await call_next(request) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next openwebui | raise app_exc from app_exc.__cause__ or app_exc.__context__ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro openwebui | await self.app(scope, receive_or_disconnect, send_no_error) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ openwebui | return await self._zstd(scope, receive, send) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ openwebui | await self.app(scope, receive, wrapper) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ openwebui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app openwebui | await app(scope, receive, sender) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ openwebui | await self.middleware_stack(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app openwebui | await route.handle(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app openwebui | await wrap_app_handling_exceptions(app, request)(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app openwebui | await app(scope, receive, sender) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app openwebui | response = await f(request) openwebui | ^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app openwebui | raw_response = await run_endpoint_function( openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function openwebui | return await dependant.call(**values) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id openwebui | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' openwebui | 2026-05-09 09:51:52.561 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/configs/banners HTTP/1.1" 200 openwebui | 2026-05-09 09:51:52.562 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302 openwebui | 2026-05-09 09:51:52.566 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/tools/ HTTP/1.1" 200 openwebui | 2026-05-09 09:51:58.388 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 openwebui | 2026-05-09 09:51:58.393 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /static/favicon.png HTTP/1.1" 304 openwebui | 2026-05-09 09:51:58.565 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200 openwebui | 2026-05-09 09:51:58.683 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 openwebui | 2026-05-09 09:51:58.870 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200 openwebui | 2026-05-09 09:52:14.563 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/7215e7f6-b208-4b2f-bf56-5e61411ece05 HTTP/1.1" 500 openwebui | Exception in ASGI application openwebui | Traceback (most recent call last): openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi openwebui | result = await app( # type: ignore[func-returns-value] openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ openwebui | return await self.app(scope, receive, send) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ openwebui | await super().__call__(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ openwebui | await self.middleware_stack(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ openwebui | await self.app(scope, receive, _send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ openwebui | await self.app(scope, receive, send_wrapper) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ openwebui | await self.app(scope, receive, send_with_timing) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ openwebui | with recv_stream, send_stream, collapse_excgroups(): openwebui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ openwebui | self.gen.throw(typ, value, traceback) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ openwebui | response = await self.dispatch_func(request, call_next) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch openwebui | response = await call_next(request) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next openwebui | raise app_exc from app_exc.__cause__ or app_exc.__context__ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro openwebui | await self.app(scope, receive_or_disconnect, send_no_error) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ openwebui | return await self._zstd(scope, receive, send) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ openwebui | await self.app(scope, receive, wrapper) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ openwebui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app openwebui | await app(scope, receive, sender) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ openwebui | await self.middleware_stack(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app openwebui | await route.handle(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app openwebui | await wrap_app_handling_exceptions(app, request)(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app openwebui | await app(scope, receive, sender) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app openwebui | response = await f(request) openwebui | ^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app openwebui | raw_response = await run_endpoint_function( openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function openwebui | return await dependant.call(**values) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id openwebui | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' openwebui | 2026-05-09 09:52:14.675 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/configs/banners HTTP/1.1" 200 openwebui | 2026-05-09 09:52:14.677 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302 openwebui | 2026-05-09 09:52:14.699 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/tools/ HTTP/1.1" 200 openwebui | 2026-05-09 09:52:17.070 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/notes/7215e7f6-b208-4b2f-bf56-5e61411ece05 HTTP/1.1" 500 openwebui | Exception in ASGI application openwebui | Traceback (most recent call last): openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi openwebui | result = await app( # type: ignore[func-returns-value] openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ openwebui | return await self.app(scope, receive, send) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ openwebui | await super().__call__(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ openwebui | await self.middleware_stack(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ openwebui | await self.app(scope, receive, _send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ openwebui | await self.app(scope, receive, send_wrapper) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ openwebui | await self.app(scope, receive, send_with_timing) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ openwebui | with recv_stream, send_stream, collapse_excgroups(): openwebui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ openwebui | self.gen.throw(typ, value, traceback) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ openwebui | response = await self.dispatch_func(request, call_next) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch openwebui | response = await call_next(request) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next openwebui | raise app_exc from app_exc.__cause__ or app_exc.__context__ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro openwebui | await self.app(scope, receive_or_disconnect, send_no_error) openwebui | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ openwebui | return await self._zstd(scope, receive, send) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ openwebui | await self.app(scope, receive, wrapper) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ openwebui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app openwebui | await app(scope, receive, sender) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ openwebui | await self.middleware_stack(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app openwebui | await route.handle(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle openwebui | await self.app(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app openwebui | await wrap_app_handling_exceptions(app, request)(scope, receive, send) openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openwebui | raise exc openwebui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app openwebui | await app(scope, receive, sender) openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app openwebui | response = await f(request) openwebui | ^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app openwebui | raw_response = await run_endpoint_function( openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function openwebui | return await dependant.call(**values) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id openwebui | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) openwebui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' openwebui | 2026-05-09 09:52:17.175 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.5.2:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302 _I am on openwebui 0.9.4 in docker. Clicking on Notes shows all notes I produced. But when I click on a single one I am immediately redirected to my chat window._
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

https://github.com/open-webui/open-webui/pull/24486

<!-- gh-comment-id:4412236318 --> @Classic298 commented on GitHub (May 9, 2026): https://github.com/open-webui/open-webui/pull/24486
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

fixed - new version coming out any minute now

<!-- gh-comment-id:4412487759 --> @Classic298 commented on GitHub (May 9, 2026): fixed - new version coming out any minute now
Author
Owner

@nkukard commented on GitHub (May 9, 2026):

fixed - new version coming out any minute now

I'm currently running 0.9.4 and seem to be affected by the same issue after updating a few minutes ago. This is on a fresh start of the container and seems to have an additional message from the database.

webui-1       | v0.9.4 - building the best AI user interface.
...
postgresql-1  | 2026-05-09 20:07:27.850 UTC [112] ERROR:  relation "pinned_note" does not exist at character 34
postgresql-1  | 2026-05-09 20:07:27.850 UTC [112] STATEMENT:  SELECT pinned_note.note_id
postgresql-1  |         FROM pinned_note
postgresql-1  |         WHERE pinned_note.user_id = $1::VARCHAR
webui-1       | 2026-05-09 20:07:27.828 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200
webui-1       | 2026-05-09 20:07:27.851 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 500
webui-1       | Exception in ASGI application
webui-1       | Traceback (most recent call last):
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
webui-1       |     self.dialect.do_execute(
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
webui-1       |     cursor.execute(statement, parameters)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute
webui-1       |     result = self.await_(self._cursor.execute(query, params, **kw))
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
webui-1       |     return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
webui-1       |     value = await result
webui-1       |             ^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute
webui-1       |     raise ex.with_traceback(None)
webui-1       | psycopg.errors.UndefinedTable: relation "pinned_note" does not exist
webui-1       | LINE 2: FROM pinned_note
webui-1       |              ^
webui-1       |
webui-1       | The above exception was the direct cause of the following exception:
webui-1       |
webui-1       | Traceback (most recent call last):
webui-1       |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
webui-1       |     result = await app(  # type: ignore[func-returns-value]
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
webui-1       |     return await self.app(scope, receive, send)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__
webui-1       |     await super().__call__(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__
webui-1       |     await self.middleware_stack(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
webui-1       |     await self.app(scope, receive, _send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__
webui-1       |     await self.app(scope, receive, send_wrapper)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__
webui-1       |     await self.app(scope, receive, send_with_timing)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
webui-1       |     with recv_stream, send_stream, collapse_excgroups():
webui-1       |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
webui-1       |     self.gen.throw(typ, value, traceback)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__
webui-1       |     response = await self.dispatch_func(request, call_next)
webui-1       |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
webui-1       |     response = await call_next(request)
webui-1       |                ^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
webui-1       |     raise app_exc from app_exc.__cause__ or app_exc.__context__
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
webui-1       |     await self.app(scope, receive_or_disconnect, send_no_error)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__
webui-1       |     return await self._zstd(scope, receive, send)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__
webui-1       |     await self.app(scope, receive, wrapper)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
webui-1       |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1       |     await app(scope, receive, sender)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__
webui-1       |     await self.middleware_stack(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
webui-1       |     await route.handle(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
webui-1       |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1       |     await app(scope, receive, sender)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
webui-1       |     response = await f(request)
webui-1       |                ^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
webui-1       |     raw_response = await run_endpoint_function(
webui-1       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
webui-1       |     return await dependant.call(**values)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/routers/notes.py", line 197, in search_notes
webui-1       |     pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
webui-1       |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/models/notes.py", line 390, in get_pinned_note_ids
webui-1       |     result = await db.execute(select(PinnedNote.note_id).filter_by(user_id=user_id))
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/session.py", line 449, in execute
webui-1       |     result = await greenlet_spawn(
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
webui-1       |     result = context.throw(*sys.exc_info())
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute
webui-1       |     return self._execute_internal(
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2249, in _execute_internal
webui-1       |     result: Result[Any] = compile_state_cls.orm_execute_statement(
webui-1       |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 306, in orm_execute_statement
webui-1       |     result = conn.execute(
webui-1       |              ^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
webui-1       |     return meth(
webui-1       |            ^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
webui-1       |     return connection._execute_clauseelement(
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
webui-1       |     ret = self._execute_context(
webui-1       |           ^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
webui-1       |     return self._exec_single_context(
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
webui-1       |     self._handle_dbapi_exception(
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
webui-1       |     raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
webui-1       |     self.dialect.do_execute(
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
webui-1       |     cursor.execute(statement, parameters)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute
webui-1       |     result = self.await_(self._cursor.execute(query, params, **kw))
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
webui-1       |     return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
webui-1       |     value = await result
webui-1       |             ^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute
webui-1       |     raise ex.with_traceback(None)
webui-1       | sqlalchemy.exc.ProgrammingError: (psycopg.errors.UndefinedTable) relation "pinned_note" does not exist
webui-1       | LINE 2: FROM pinned_note
webui-1       |              ^
webui-1       | [SQL: SELECT pinned_note.note_id
webui-1       | FROM pinned_note
webui-1       | WHERE pinned_note.user_id = %(user_id_1)s::VARCHAR]
webui-1       | [parameters: {'user_id_1': '94f10bd4-934f-4b41-b5ea-f64c684231ca'}]
webui-1       | (Background on this error at: https://sqlalche.me/e/20/f405)
postgresql-1  | 2026-05-09 20:07:28.153 UTC [110] ERROR:  relation "pinned_note" does not exist at character 34
postgresql-1  | 2026-05-09 20:07:28.153 UTC [110] STATEMENT:  SELECT pinned_note.note_id
postgresql-1  |         FROM pinned_note
postgresql-1  |         WHERE pinned_note.user_id = $1::VARCHAR
webui-1       | 2026-05-09 20:07:28.153 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 500
webui-1       | Exception in ASGI application
webui-1       | Traceback (most recent call last):
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
webui-1       |     self.dialect.do_execute(
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
webui-1       |     cursor.execute(statement, parameters)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute
webui-1       |     result = self.await_(self._cursor.execute(query, params, **kw))
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
webui-1       |     return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
webui-1       |     value = await result
webui-1       |             ^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute
webui-1       |     raise ex.with_traceback(None)
webui-1       | psycopg.errors.UndefinedTable: relation "pinned_note" does not exist
webui-1       | LINE 2: FROM pinned_note
webui-1       |              ^
webui-1       |
webui-1       | The above exception was the direct cause of the following exception:
webui-1       |
webui-1       | Traceback (most recent call last):
webui-1       |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
webui-1       |     result = await app(  # type: ignore[func-returns-value]
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
webui-1       |     return await self.app(scope, receive, send)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__
webui-1       |     await super().__call__(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__
webui-1       |     await self.middleware_stack(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
webui-1       |     await self.app(scope, receive, _send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__
webui-1       |     await self.app(scope, receive, send_wrapper)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__
webui-1       |     await self.app(scope, receive, send_with_timing)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
webui-1       |     with recv_stream, send_stream, collapse_excgroups():
webui-1       |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
webui-1       |     self.gen.throw(typ, value, traceback)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__
webui-1       |     response = await self.dispatch_func(request, call_next)
webui-1       |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
webui-1       |     response = await call_next(request)
webui-1       |                ^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
webui-1       |     raise app_exc from app_exc.__cause__ or app_exc.__context__
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
webui-1       |     await self.app(scope, receive_or_disconnect, send_no_error)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__
webui-1       |     return await self._zstd(scope, receive, send)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__
webui-1       |     await self.app(scope, receive, wrapper)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
webui-1       |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1       |     await app(scope, receive, sender)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__
webui-1       |     await self.middleware_stack(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
webui-1       |     await route.handle(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
webui-1       |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1       |     await app(scope, receive, sender)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
webui-1       |     response = await f(request)
webui-1       |                ^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
webui-1       |     raw_response = await run_endpoint_function(
webui-1       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
webui-1       |     return await dependant.call(**values)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/routers/notes.py", line 197, in search_notes
webui-1       |     pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db)
webui-1       |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/models/notes.py", line 390, in get_pinned_note_ids
webui-1       |     result = await db.execute(select(PinnedNote.note_id).filter_by(user_id=user_id))
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/session.py", line 449, in execute
webui-1       |     result = await greenlet_spawn(
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
webui-1       |     result = context.throw(*sys.exc_info())
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute
webui-1       |     return self._execute_internal(
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2249, in _execute_internal
webui-1       |     result: Result[Any] = compile_state_cls.orm_execute_statement(
webui-1       |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 306, in orm_execute_statement
webui-1       |     result = conn.execute(
webui-1       |              ^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
webui-1       |     return meth(
webui-1       |            ^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
webui-1       |     return connection._execute_clauseelement(
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
webui-1       |     ret = self._execute_context(
webui-1       |           ^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
webui-1       |     return self._exec_single_context(
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
webui-1       |     self._handle_dbapi_exception(
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
webui-1       |     raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
webui-1       |     self.dialect.do_execute(
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
webui-1       |     cursor.execute(statement, parameters)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute
webui-1       |     result = self.await_(self._cursor.execute(query, params, **kw))
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
webui-1       |     return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
webui-1       |     value = await result
webui-1       |             ^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute
webui-1       |     raise ex.with_traceback(None)
webui-1       | sqlalchemy.exc.ProgrammingError: (psycopg.errors.UndefinedTable) relation "pinned_note" does not exist
webui-1       | LINE 2: FROM pinned_note
webui-1       |              ^
webui-1       | [SQL: SELECT pinned_note.note_id
webui-1       | FROM pinned_note
webui-1       | WHERE pinned_note.user_id = %(user_id_1)s::VARCHAR]
webui-1       | [parameters: {'user_id_1': '94f10bd4-934f-4b41-b5ea-f64c684231ca'}]
webui-1       | (Background on this error at: https://sqlalche.me/e/20/f405)
webui-1       | 2026-05-09 20:07:31.668 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /_app/version.json HTTP/1.1" 200
^C
130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io #
130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose exec -it postgresql psql -U owebui owebui
psql (17.4)
Type "help" for help.

owebui=> CREATE TABLE pinned_note (
        id TEXT NOT NULL,
        user_id TEXT NOT NULL,
        note_id TEXT NOT NULL,
        created_at BIGINT NOT NULL,
        PRIMARY KEY (id),
        CONSTRAINT uq_pinned_note UNIQUE (user_id, note_id),
        FOREIGN KEY(note_id) REFERENCES note (id) ON DELETE CASCADE
);
CREATE TABLE
owebui=>
\q
root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100
redis-1  | >>> Flexible Docker Containers v1.6.0 - Copyright (c) 2023, AllWorldIT <<<
redis-1  | >>> INFO    > Flexible Docker Containers -- Layer Version Information
redis-1  | Conarx Containers - Redis Docker Image  [containers/redis] rolling 20240526103319 build 253 commit bc185bb7 (2024-05-26 10:33:19+00:00)
redis-1       | Conarx Containers - Alpine Docker Image [containers/alpine] rolling/3.19 20240522181317 build 803 commit 7a5f5744 (2024-05-22 18:13:17+00:00)
redis-1       | >>> INFO    > init.d - Processing [40-crond.sh]
redis-1       | >>> NOTICE  > Disabling crond, no crontabs
redis-1       | >>> INFO    > init.d - Processing [42-redis.sh]
redis-1       | >>> NOTICE  > Setting up Redis permissions
redis-1       | >>> NOTICE  > Initializing Redis settings
redis-1       | >>> INFO    > Enabling Redis user ACL
redis-1       | >>> INFO    > Setting Redis password
postgresql-1  | >>> Flexible Docker Containers v1.6.0 - Copyright (c) 2022-2025, AllWorldIT <<<
postgresql-1  | >>> INFO    > Flexible Docker Containers -- Layer Version Information
postgresql-1  | Conarx Containers - PostgreSQL Docker Image [containers/postgresql] rolling/3.21 20250525024315/17.4 build 483 commit ece5835a (2025-05-25 02:43:15+00:00)
postgresql-1  | Conarx Containers - Alpine Docker Image [containers/alpine] rolling/3.21 20250521181315 build 987 commit 166ec016 (2025-05-21 18:13:15+00:00)
postgresql-1  | >>> INFO    > init.d - Processing [40-crond.sh]
postgresql-1  | >>> NOTICE  > Disabling crond, no crontabs
postgresql-1  | >>> INFO    > init.d - Processing [42-postgresql.sh]
postgresql-1  | >>> NOTICE  > Setting PostgreSQL permissions
postgresql-1  | >>> INFO    > Ready for start up
postgresql-1  | 2026-05-09 20:07:00,173 INFO Included extra file "/etc/supervisor/conf.d/postgresql.conf" during parsing
postgresql-1  | 2026-05-09 20:07:00,173 INFO Included extra file "/etc/supervisor/conf.d/syslog-ng.conf" during parsing
postgresql-1  | 2026-05-09 20:07:00,173 INFO Set uid to user 0 succeeded
postgresql-1  | 2026-05-09 20:07:00,174 INFO supervisord started with pid 1
postgresql-1  | 2026-05-09 20:07:01,176 INFO spawned: 'syslog-ng' with pid 39
postgresql-1  | 2026-05-09 20:07:01,177 INFO spawned: 'postgresql' with pid 40
postgresql-1  | May  9 20:07:01 cb8f426ba683 syslog-ng[39]: syslog-ng starting up; version='4.8.1'
postgresql-1  | 2026-05-09 20:07:01.204 UTC [40] LOG:  starting PostgreSQL 17.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 14.2.0) 14.2.0, 64-bit
postgresql-1  | 2026-05-09 20:07:01.204 UTC [40] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgresql-1  | 2026-05-09 20:07:01.204 UTC [40] LOG:  listening on IPv6 address "::", port 5432
postgresql-1  | 2026-05-09 20:07:01.212 UTC [40] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
postgresql-1  | 2026-05-09 20:07:01.218 UTC [45] LOG:  database system was shut down at 2026-05-09 20:06:59 UTC
webui-1       | 2026-05-09 20:08:46.532 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:46.808 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/chats/?page=2 HTTP/1.1" 200
postgresql-1  | 2026-05-09 20:07:01.223 UTC [40] LOG:  database system is ready to accept connections
webui-1       | 2026-05-09 20:08:47.768 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/chats/0068939e-46a7-402c-a14c-529d7961c56e HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:49.391 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/configs/banners HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:49.403 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/tools/ HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:49.403 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302
webui-1       | 2026-05-09 20:08:49.403 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:50.207 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:50.502 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:50.508 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:52.365 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/928a89cc-4ef8-4749-8b47-05592ecb7dc0 HTTP/1.1" 500
postgresql-1  | 2026-05-09 20:07:02,224 INFO success: syslog-ng entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
postgresql-1  | 2026-05-09 20:07:02,225 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
webui-1       | Exception in ASGI application
postgresql-1  | 2026-05-09 20:07:27.850 UTC [112] ERROR:  relation "pinned_note" does not exist at character 34
postgresql-1  | 2026-05-09 20:07:27.850 UTC [112] STATEMENT:  SELECT pinned_note.note_id
postgresql-1  |         FROM pinned_note
postgresql-1  |         WHERE pinned_note.user_id = $1::VARCHAR
postgresql-1  | 2026-05-09 20:07:28.153 UTC [110] ERROR:  relation "pinned_note" does not exist at character 34
postgresql-1  | 2026-05-09 20:07:28.153 UTC [110] STATEMENT:  SELECT pinned_note.note_id
postgresql-1  |         FROM pinned_note
postgresql-1  |         WHERE pinned_note.user_id = $1::VARCHAR
redis-1       | >>> INFO    > Ready for start up
redis-1       | 2026-05-09 20:07:00,136 INFO Included extra file "/etc/supervisor/conf.d/redis.conf" during parsing
redis-1       | 2026-05-09 20:07:00,136 INFO Included extra file "/etc/supervisor/conf.d/syslog-ng.conf" during parsing
webui-1       | Traceback (most recent call last):
webui-1       |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
webui-1       |     result = await app(  # type: ignore[func-returns-value]
webui-1       |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
webui-1       |     return await self.app(scope, receive, send)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__
webui-1       |     await super().__call__(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__
webui-1       |     await self.middleware_stack(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
redis-1       | 2026-05-09 20:07:00,136 INFO Set uid to user 0 succeeded
redis-1       | 2026-05-09 20:07:00,138 INFO supervisord started with pid 1
redis-1       | 2026-05-09 20:07:01,140 INFO spawned: 'syslog-ng' with pid 51
redis-1       | 2026-05-09 20:07:01,142 INFO spawned: 'redis' with pid 52
webui-1       |     raise exc
redis-1       | May  9 20:07:01 a61800436b9f syslog-ng[51]: syslog-ng starting up; version='4.5.0'
redis-1       | 2026-05-09 20:07:02,151 INFO success: syslog-ng entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
redis-1       | 2026-05-09 20:07:02,151 INFO success: redis entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
webui-1       |     await self.app(scope, receive, _send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__
webui-1       |     await self.app(scope, receive, send_wrapper)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__
webui-1       |     await self.app(scope, receive, send_with_timing)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
webui-1       |     with recv_stream, send_stream, collapse_excgroups():
webui-1       |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
webui-1       |     self.gen.throw(typ, value, traceback)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__
webui-1       |     response = await self.dispatch_func(request, call_next)
webui-1       |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
webui-1       |     response = await call_next(request)
webui-1       |                ^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
webui-1       |     raise app_exc from app_exc.__cause__ or app_exc.__context__
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
webui-1       |     await self.app(scope, receive_or_disconnect, send_no_error)
webui-1       |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__
webui-1       |     return await self._zstd(scope, receive, send)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__
webui-1       |     await self.app(scope, receive, wrapper)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
webui-1       |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1       |     await app(scope, receive, sender)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__
webui-1       |     await self.middleware_stack(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
webui-1       |     await route.handle(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
webui-1       |     await self.app(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
webui-1       |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1       |     raise exc
webui-1       |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1       |     await app(scope, receive, sender)
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
webui-1       |     response = await f(request)
webui-1       |                ^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
webui-1       |     raw_response = await run_endpoint_function(
webui-1       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
webui-1       |     return await dependant.call(**values)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       |   File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
webui-1       |     return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
webui-1       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1       | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'
webui-1       | 2026-05-09 20:08:52.557 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302
webui-1       | 2026-05-09 20:08:52.559 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/configs/banners HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:52.564 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/tools/ HTTP/1.1" 200
webui-1       | 2026-05-09 20:08:53.753 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1       | 2026-05-09 20:08:54.042 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1       | 2026-05-09 20:08:55.269 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1       | 2026-05-09 20:08:59.154 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
^C
130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io #
130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 webui-1
no such service: webui-1
1 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 webui
webui-1  | 2026-05-09 20:08:49.403 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/tools/ HTTP/1.1" 200
webui-1  | 2026-05-09 20:08:49.403 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302
webui-1  | 2026-05-09 20:08:49.403 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200
webui-1  | 2026-05-09 20:08:50.207 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
webui-1  | 2026-05-09 20:08:50.502 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
webui-1  | 2026-05-09 20:08:50.508 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200
webui-1  | 2026-05-09 20:08:52.365 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/928a89cc-4ef8-4749-8b47-05592ecb7dc0 HTTP/1.1" 500
webui-1  | Exception in ASGI application
webui-1  | Traceback (most recent call last):
webui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
webui-1  |     result = await app(  # type: ignore[func-returns-value]
webui-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
webui-1  |     return await self.app(scope, receive, send)
webui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__
webui-1  |     await super().__call__(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__
webui-1  |     await self.middleware_stack(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
webui-1  |     await self.app(scope, receive, _send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__
webui-1  |     await self.app(scope, receive, send_wrapper)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__
webui-1  |     await self.app(scope, receive, send_with_timing)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
webui-1  |     with recv_stream, send_stream, collapse_excgroups():
webui-1  |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
webui-1  |     self.gen.throw(typ, value, traceback)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__
webui-1  |     response = await self.dispatch_func(request, call_next)
webui-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
webui-1  |     response = await call_next(request)
webui-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
webui-1  |     raise app_exc from app_exc.__cause__ or app_exc.__context__
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
webui-1  |     await self.app(scope, receive_or_disconnect, send_no_error)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__
webui-1  |     return await self._zstd(scope, receive, send)
webui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__
webui-1  |     await self.app(scope, receive, wrapper)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
webui-1  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1  |     await app(scope, receive, sender)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
webui-1  |     await self.app(scope, receive, send)

     LDAP_SEARCH_BASE: ou=Users,dc=ldapds,dc=iitsp,dc=com
     LDAP_ATTRIBUTE_FOR_USERNAME: uid
     LDAP_ATTRIBUTE_FOR_MAIL: mail
     LDAP_SEARCH_FILTER: "(authorizedService=awit.ai)"

     UVICORN_WORKERS: 16

#     MODELS_CACHE_TTL: 3600
     # Enable swagger ui
#     ENV: dev
#     VECTOR_DB: milvus
#     MILVUS_URI: http://root:Milvus@milvus:19530
#     MILVUS_DB: default

    volumes:
      - ./config/start.sh:/app/backend/start.sh
      - ./data/open-webui:/app/backend/data
#      - ./images.py:/app/backend/open_webui/routers/images.py
#    depends_on:
#     - ollama
    expose:
     - 8080/tcp
    ports:
     - 8081:8080/tcp
    networks:
      - external
      - internal
    depends_on:
      - postgresql

  postgresql:
    image: allworldit/postgresql:3.21-17.4
    environment:
      - POSTGRES_USER=owebui
      - POSTGRES_PASSWORD=D0Novmaf14qOsguj
      - POSTGRES_DATABASE=owebui
    volumes:
      - './data/postgresql:/var/lib/postgresql/data'
    networks:
      - internal

  redis:
    image: allworldit/redis
"docker-compose.yml" 192L, 5002B written
root@fr1 /var/lib/docker/compose/chat_ai_awit_io # systemctl restart docker-compose@chat_ai_awit_io
root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 webui
webui-1  | 2026-05-09 20:15:10.130 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:11.245 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:12.164 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:16.106 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:22.044 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:22.410 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:23.885 | WARNING  | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup.
webui-1  | 2026-05-09 20:15:27.058 | ERROR    | open_webui.socket.main:periodic_session_pool_cleanup:182 - Unable to renew session cleanup lock. Exiting.
webui-1  | 2026-05-09 20:15:31.157 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /_app/version.json HTTP/1.1" 200
webui-1  | 2026-05-09 20:16:05.272 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200
webui-1  | 2026-05-09 20:16:05.299 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
webui-1  | 2026-05-09 20:16:05.606 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200
webui-1  | 2026-05-09 20:16:05.708 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200
webui-1  | 2026-05-09 20:16:05.819 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=3 HTTP/1.1" 200
webui-1  | 2026-05-09 20:16:07.233 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/c875220d-12c6-4a00-af9c-7dc9cb5dd6cf HTTP/1.1" 500
webui-1  | Exception in ASGI application
webui-1  | Traceback (most recent call last):
webui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi
webui-1  |     result = await app(  # type: ignore[func-returns-value]
webui-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
webui-1  |     return await self.app(scope, receive, send)
webui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__
webui-1  |     await super().__call__(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__
webui-1  |     await self.middleware_stack(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
webui-1  |     await self.app(scope, receive, _send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__
webui-1  |     await self.app(scope, receive, send_wrapper)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__
webui-1  |     await self.app(scope, receive, send_with_timing)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
webui-1  |     with recv_stream, send_stream, collapse_excgroups():
webui-1  |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
webui-1  |     self.gen.throw(typ, value, traceback)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__
webui-1  |     response = await self.dispatch_func(request, call_next)
webui-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch
webui-1  |     response = await call_next(request)
webui-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
webui-1  |     raise app_exc from app_exc.__cause__ or app_exc.__context__
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
webui-1  |     await self.app(scope, receive_or_disconnect, send_no_error)
webui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__
webui-1  |     return await self._zstd(scope, receive, send)
webui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__
webui-1  |     await self.app(scope, receive, wrapper)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
webui-1  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1  |     await app(scope, receive, sender)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__
webui-1  |     await self.middleware_stack(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
webui-1  |     await route.handle(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
webui-1  |     await self.app(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
webui-1  |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
webui-1  |     raise exc
webui-1  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
webui-1  |     await app(scope, receive, sender)
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
webui-1  |     response = await f(request)
webui-1  |                ^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
webui-1  |     raw_response = await run_endpoint_function(
webui-1  |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
webui-1  |     return await dependant.call(**values)
webui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  |   File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id
webui-1  |     return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids)
webui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webui-1  | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned'
<!-- gh-comment-id:4413581704 --> @nkukard commented on GitHub (May 9, 2026): > fixed - new version coming out any minute now I'm currently running 0.9.4 and seem to be affected by the same issue after updating a few minutes ago. This is on a fresh start of the container and seems to have an additional message from the database. ``` webui-1 | v0.9.4 - building the best AI user interface. ... postgresql-1 | 2026-05-09 20:07:27.850 UTC [112] ERROR: relation "pinned_note" does not exist at character 34 postgresql-1 | 2026-05-09 20:07:27.850 UTC [112] STATEMENT: SELECT pinned_note.note_id postgresql-1 | FROM pinned_note postgresql-1 | WHERE pinned_note.user_id = $1::VARCHAR webui-1 | 2026-05-09 20:07:27.828 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200 webui-1 | 2026-05-09 20:07:27.851 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 500 webui-1 | Exception in ASGI application webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context webui-1 | self.dialect.do_execute( webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute webui-1 | cursor.execute(statement, parameters) webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute webui-1 | result = self.await_(self._cursor.execute(query, params, **kw)) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only webui-1 | return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501 webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn webui-1 | value = await result webui-1 | ^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute webui-1 | raise ex.with_traceback(None) webui-1 | psycopg.errors.UndefinedTable: relation "pinned_note" does not exist webui-1 | LINE 2: FROM pinned_note webui-1 | ^ webui-1 | webui-1 | The above exception was the direct cause of the following exception: webui-1 | webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi webui-1 | result = await app( # type: ignore[func-returns-value] webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ webui-1 | return await self.app(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ webui-1 | await super().__call__(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ webui-1 | await self.app(scope, receive, _send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send_wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ webui-1 | await self.app(scope, receive, send_with_timing) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ webui-1 | with recv_stream, send_stream, collapse_excgroups(): webui-1 | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ webui-1 | self.gen.throw(typ, value, traceback) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ webui-1 | response = await self.dispatch_func(request, call_next) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch webui-1 | response = await call_next(request) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next webui-1 | raise app_exc from app_exc.__cause__ or app_exc.__context__ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro webui-1 | await self.app(scope, receive_or_disconnect, send_no_error) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ webui-1 | return await self._zstd(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ webui-1 | await self.app(scope, receive, wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ webui-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app webui-1 | await route.handle(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app webui-1 | await wrap_app_handling_exceptions(app, request)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app webui-1 | response = await f(request) webui-1 | ^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app webui-1 | raw_response = await run_endpoint_function( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function webui-1 | return await dependant.call(**values) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/routers/notes.py", line 197, in search_notes webui-1 | pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/models/notes.py", line 390, in get_pinned_note_ids webui-1 | result = await db.execute(select(PinnedNote.note_id).filter_by(user_id=user_id)) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/session.py", line 449, in execute webui-1 | result = await greenlet_spawn( webui-1 | ^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn webui-1 | result = context.throw(*sys.exc_info()) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute webui-1 | return self._execute_internal( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2249, in _execute_internal webui-1 | result: Result[Any] = compile_state_cls.orm_execute_statement( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 306, in orm_execute_statement webui-1 | result = conn.execute( webui-1 | ^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute webui-1 | return meth( webui-1 | ^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection webui-1 | return connection._execute_clauseelement( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement webui-1 | ret = self._execute_context( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context webui-1 | return self._exec_single_context( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context webui-1 | self._handle_dbapi_exception( webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception webui-1 | raise sqlalchemy_exception.with_traceback(exc_info[2]) from e webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context webui-1 | self.dialect.do_execute( webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute webui-1 | cursor.execute(statement, parameters) webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute webui-1 | result = self.await_(self._cursor.execute(query, params, **kw)) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only webui-1 | return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501 webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn webui-1 | value = await result webui-1 | ^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute webui-1 | raise ex.with_traceback(None) webui-1 | sqlalchemy.exc.ProgrammingError: (psycopg.errors.UndefinedTable) relation "pinned_note" does not exist webui-1 | LINE 2: FROM pinned_note webui-1 | ^ webui-1 | [SQL: SELECT pinned_note.note_id webui-1 | FROM pinned_note webui-1 | WHERE pinned_note.user_id = %(user_id_1)s::VARCHAR] webui-1 | [parameters: {'user_id_1': '94f10bd4-934f-4b41-b5ea-f64c684231ca'}] webui-1 | (Background on this error at: https://sqlalche.me/e/20/f405) postgresql-1 | 2026-05-09 20:07:28.153 UTC [110] ERROR: relation "pinned_note" does not exist at character 34 postgresql-1 | 2026-05-09 20:07:28.153 UTC [110] STATEMENT: SELECT pinned_note.note_id postgresql-1 | FROM pinned_note postgresql-1 | WHERE pinned_note.user_id = $1::VARCHAR webui-1 | 2026-05-09 20:07:28.153 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 500 webui-1 | Exception in ASGI application webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context webui-1 | self.dialect.do_execute( webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute webui-1 | cursor.execute(statement, parameters) webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute webui-1 | result = self.await_(self._cursor.execute(query, params, **kw)) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only webui-1 | return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501 webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn webui-1 | value = await result webui-1 | ^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute webui-1 | raise ex.with_traceback(None) webui-1 | psycopg.errors.UndefinedTable: relation "pinned_note" does not exist webui-1 | LINE 2: FROM pinned_note webui-1 | ^ webui-1 | webui-1 | The above exception was the direct cause of the following exception: webui-1 | webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi webui-1 | result = await app( # type: ignore[func-returns-value] webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ webui-1 | return await self.app(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ webui-1 | await super().__call__(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ webui-1 | await self.app(scope, receive, _send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send_wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ webui-1 | await self.app(scope, receive, send_with_timing) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ webui-1 | with recv_stream, send_stream, collapse_excgroups(): webui-1 | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ webui-1 | self.gen.throw(typ, value, traceback) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ webui-1 | response = await self.dispatch_func(request, call_next) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch webui-1 | response = await call_next(request) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next webui-1 | raise app_exc from app_exc.__cause__ or app_exc.__context__ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro webui-1 | await self.app(scope, receive_or_disconnect, send_no_error) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ webui-1 | return await self._zstd(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ webui-1 | await self.app(scope, receive, wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ webui-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app webui-1 | await route.handle(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app webui-1 | await wrap_app_handling_exceptions(app, request)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app webui-1 | response = await f(request) webui-1 | ^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app webui-1 | raw_response = await run_endpoint_function( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function webui-1 | return await dependant.call(**values) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/routers/notes.py", line 197, in search_notes webui-1 | pinned_note_ids = await Notes.get_pinned_note_ids(user.id, db=db) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/models/notes.py", line 390, in get_pinned_note_ids webui-1 | result = await db.execute(select(PinnedNote.note_id).filter_by(user_id=user_id)) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/session.py", line 449, in execute webui-1 | result = await greenlet_spawn( webui-1 | ^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn webui-1 | result = context.throw(*sys.exc_info()) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute webui-1 | return self._execute_internal( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2249, in _execute_internal webui-1 | result: Result[Any] = compile_state_cls.orm_execute_statement( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 306, in orm_execute_statement webui-1 | result = conn.execute( webui-1 | ^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute webui-1 | return meth( webui-1 | ^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection webui-1 | return connection._execute_clauseelement( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement webui-1 | ret = self._execute_context( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context webui-1 | return self._exec_single_context( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context webui-1 | self._handle_dbapi_exception( webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception webui-1 | raise sqlalchemy_exception.with_traceback(exc_info[2]) from e webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context webui-1 | self.dialect.do_execute( webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute webui-1 | cursor.execute(statement, parameters) webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 673, in execute webui-1 | result = self.await_(self._cursor.execute(query, params, **kw)) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only webui-1 | return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501 webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn webui-1 | value = await result webui-1 | ^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/psycopg/cursor_async.py", line 97, in execute webui-1 | raise ex.with_traceback(None) webui-1 | sqlalchemy.exc.ProgrammingError: (psycopg.errors.UndefinedTable) relation "pinned_note" does not exist webui-1 | LINE 2: FROM pinned_note webui-1 | ^ webui-1 | [SQL: SELECT pinned_note.note_id webui-1 | FROM pinned_note webui-1 | WHERE pinned_note.user_id = %(user_id_1)s::VARCHAR] webui-1 | [parameters: {'user_id_1': '94f10bd4-934f-4b41-b5ea-f64c684231ca'}] webui-1 | (Background on this error at: https://sqlalche.me/e/20/f405) webui-1 | 2026-05-09 20:07:31.668 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /_app/version.json HTTP/1.1" 200 ^C 130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # 130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose exec -it postgresql psql -U owebui owebui psql (17.4) Type "help" for help. owebui=> CREATE TABLE pinned_note ( id TEXT NOT NULL, user_id TEXT NOT NULL, note_id TEXT NOT NULL, created_at BIGINT NOT NULL, PRIMARY KEY (id), CONSTRAINT uq_pinned_note UNIQUE (user_id, note_id), FOREIGN KEY(note_id) REFERENCES note (id) ON DELETE CASCADE ); CREATE TABLE owebui=> \q root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 redis-1 | >>> Flexible Docker Containers v1.6.0 - Copyright (c) 2023, AllWorldIT <<< redis-1 | >>> INFO > Flexible Docker Containers -- Layer Version Information redis-1 | Conarx Containers - Redis Docker Image [containers/redis] rolling 20240526103319 build 253 commit bc185bb7 (2024-05-26 10:33:19+00:00) redis-1 | Conarx Containers - Alpine Docker Image [containers/alpine] rolling/3.19 20240522181317 build 803 commit 7a5f5744 (2024-05-22 18:13:17+00:00) redis-1 | >>> INFO > init.d - Processing [40-crond.sh] redis-1 | >>> NOTICE > Disabling crond, no crontabs redis-1 | >>> INFO > init.d - Processing [42-redis.sh] redis-1 | >>> NOTICE > Setting up Redis permissions redis-1 | >>> NOTICE > Initializing Redis settings redis-1 | >>> INFO > Enabling Redis user ACL redis-1 | >>> INFO > Setting Redis password postgresql-1 | >>> Flexible Docker Containers v1.6.0 - Copyright (c) 2022-2025, AllWorldIT <<< postgresql-1 | >>> INFO > Flexible Docker Containers -- Layer Version Information postgresql-1 | Conarx Containers - PostgreSQL Docker Image [containers/postgresql] rolling/3.21 20250525024315/17.4 build 483 commit ece5835a (2025-05-25 02:43:15+00:00) postgresql-1 | Conarx Containers - Alpine Docker Image [containers/alpine] rolling/3.21 20250521181315 build 987 commit 166ec016 (2025-05-21 18:13:15+00:00) postgresql-1 | >>> INFO > init.d - Processing [40-crond.sh] postgresql-1 | >>> NOTICE > Disabling crond, no crontabs postgresql-1 | >>> INFO > init.d - Processing [42-postgresql.sh] postgresql-1 | >>> NOTICE > Setting PostgreSQL permissions postgresql-1 | >>> INFO > Ready for start up postgresql-1 | 2026-05-09 20:07:00,173 INFO Included extra file "/etc/supervisor/conf.d/postgresql.conf" during parsing postgresql-1 | 2026-05-09 20:07:00,173 INFO Included extra file "/etc/supervisor/conf.d/syslog-ng.conf" during parsing postgresql-1 | 2026-05-09 20:07:00,173 INFO Set uid to user 0 succeeded postgresql-1 | 2026-05-09 20:07:00,174 INFO supervisord started with pid 1 postgresql-1 | 2026-05-09 20:07:01,176 INFO spawned: 'syslog-ng' with pid 39 postgresql-1 | 2026-05-09 20:07:01,177 INFO spawned: 'postgresql' with pid 40 postgresql-1 | May 9 20:07:01 cb8f426ba683 syslog-ng[39]: syslog-ng starting up; version='4.8.1' postgresql-1 | 2026-05-09 20:07:01.204 UTC [40] LOG: starting PostgreSQL 17.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 14.2.0) 14.2.0, 64-bit postgresql-1 | 2026-05-09 20:07:01.204 UTC [40] LOG: listening on IPv4 address "0.0.0.0", port 5432 postgresql-1 | 2026-05-09 20:07:01.204 UTC [40] LOG: listening on IPv6 address "::", port 5432 postgresql-1 | 2026-05-09 20:07:01.212 UTC [40] LOG: listening on Unix socket "/run/postgresql/.s.PGSQL.5432" postgresql-1 | 2026-05-09 20:07:01.218 UTC [45] LOG: database system was shut down at 2026-05-09 20:06:59 UTC webui-1 | 2026-05-09 20:08:46.532 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:46.808 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/chats/?page=2 HTTP/1.1" 200 postgresql-1 | 2026-05-09 20:07:01.223 UTC [40] LOG: database system is ready to accept connections webui-1 | 2026-05-09 20:08:47.768 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/chats/0068939e-46a7-402c-a14c-529d7961c56e HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:49.391 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/configs/banners HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:49.403 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/tools/ HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:49.403 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302 webui-1 | 2026-05-09 20:08:49.403 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:50.207 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:50.502 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:50.508 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:52.365 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/928a89cc-4ef8-4749-8b47-05592ecb7dc0 HTTP/1.1" 500 postgresql-1 | 2026-05-09 20:07:02,224 INFO success: syslog-ng entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) postgresql-1 | 2026-05-09 20:07:02,225 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) webui-1 | Exception in ASGI application postgresql-1 | 2026-05-09 20:07:27.850 UTC [112] ERROR: relation "pinned_note" does not exist at character 34 postgresql-1 | 2026-05-09 20:07:27.850 UTC [112] STATEMENT: SELECT pinned_note.note_id postgresql-1 | FROM pinned_note postgresql-1 | WHERE pinned_note.user_id = $1::VARCHAR postgresql-1 | 2026-05-09 20:07:28.153 UTC [110] ERROR: relation "pinned_note" does not exist at character 34 postgresql-1 | 2026-05-09 20:07:28.153 UTC [110] STATEMENT: SELECT pinned_note.note_id postgresql-1 | FROM pinned_note postgresql-1 | WHERE pinned_note.user_id = $1::VARCHAR redis-1 | >>> INFO > Ready for start up redis-1 | 2026-05-09 20:07:00,136 INFO Included extra file "/etc/supervisor/conf.d/redis.conf" during parsing redis-1 | 2026-05-09 20:07:00,136 INFO Included extra file "/etc/supervisor/conf.d/syslog-ng.conf" during parsing webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi webui-1 | result = await app( # type: ignore[func-returns-value] webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ webui-1 | return await self.app(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ webui-1 | await super().__call__(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ redis-1 | 2026-05-09 20:07:00,136 INFO Set uid to user 0 succeeded redis-1 | 2026-05-09 20:07:00,138 INFO supervisord started with pid 1 redis-1 | 2026-05-09 20:07:01,140 INFO spawned: 'syslog-ng' with pid 51 redis-1 | 2026-05-09 20:07:01,142 INFO spawned: 'redis' with pid 52 webui-1 | raise exc redis-1 | May 9 20:07:01 a61800436b9f syslog-ng[51]: syslog-ng starting up; version='4.5.0' redis-1 | 2026-05-09 20:07:02,151 INFO success: syslog-ng entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) redis-1 | 2026-05-09 20:07:02,151 INFO success: redis entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ webui-1 | await self.app(scope, receive, _send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send_wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ webui-1 | await self.app(scope, receive, send_with_timing) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ webui-1 | with recv_stream, send_stream, collapse_excgroups(): webui-1 | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ webui-1 | self.gen.throw(typ, value, traceback) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ webui-1 | response = await self.dispatch_func(request, call_next) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch webui-1 | response = await call_next(request) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next webui-1 | raise app_exc from app_exc.__cause__ or app_exc.__context__ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro webui-1 | await self.app(scope, receive_or_disconnect, send_no_error) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ webui-1 | return await self._zstd(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ webui-1 | await self.app(scope, receive, wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ webui-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app webui-1 | await route.handle(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app webui-1 | await wrap_app_handling_exceptions(app, request)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app webui-1 | response = await f(request) webui-1 | ^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app webui-1 | raw_response = await run_endpoint_function( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function webui-1 | return await dependant.call(**values) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id webui-1 | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' webui-1 | 2026-05-09 20:08:52.557 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302 webui-1 | 2026-05-09 20:08:52.559 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/configs/banners HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:52.564 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/tools/ HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:53.753 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:08:54.042 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:08:55.269 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:08:59.154 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. ^C 130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # 130 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 webui-1 no such service: webui-1 1 root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 webui webui-1 | 2026-05-09 20:08:49.403 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/tools/ HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:49.403 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/models/model/profile/image?id=undefined&lang=en-US HTTP/1.1" 302 webui-1 | 2026-05-09 20:08:49.403 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:50.207 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:50.502 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:50.508 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200 webui-1 | 2026-05-09 20:08:52.365 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/928a89cc-4ef8-4749-8b47-05592ecb7dc0 HTTP/1.1" 500 webui-1 | Exception in ASGI application webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi webui-1 | result = await app( # type: ignore[func-returns-value] webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ webui-1 | return await self.app(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ webui-1 | await super().__call__(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ webui-1 | await self.app(scope, receive, _send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send_wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ webui-1 | await self.app(scope, receive, send_with_timing) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ webui-1 | with recv_stream, send_stream, collapse_excgroups(): webui-1 | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ webui-1 | self.gen.throw(typ, value, traceback) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ webui-1 | response = await self.dispatch_func(request, call_next) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch webui-1 | response = await call_next(request) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next webui-1 | raise app_exc from app_exc.__cause__ or app_exc.__context__ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro webui-1 | await self.app(scope, receive_or_disconnect, send_no_error) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ webui-1 | return await self._zstd(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ webui-1 | await self.app(scope, receive, wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ webui-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ webui-1 | await self.app(scope, receive, send) LDAP_SEARCH_BASE: ou=Users,dc=ldapds,dc=iitsp,dc=com LDAP_ATTRIBUTE_FOR_USERNAME: uid LDAP_ATTRIBUTE_FOR_MAIL: mail LDAP_SEARCH_FILTER: "(authorizedService=awit.ai)" UVICORN_WORKERS: 16 # MODELS_CACHE_TTL: 3600 # Enable swagger ui # ENV: dev # VECTOR_DB: milvus # MILVUS_URI: http://root:Milvus@milvus:19530 # MILVUS_DB: default volumes: - ./config/start.sh:/app/backend/start.sh - ./data/open-webui:/app/backend/data # - ./images.py:/app/backend/open_webui/routers/images.py # depends_on: # - ollama expose: - 8080/tcp ports: - 8081:8080/tcp networks: - external - internal depends_on: - postgresql postgresql: image: allworldit/postgresql:3.21-17.4 environment: - POSTGRES_USER=owebui - POSTGRES_PASSWORD=D0Novmaf14qOsguj - POSTGRES_DATABASE=owebui volumes: - './data/postgresql:/var/lib/postgresql/data' networks: - internal redis: image: allworldit/redis "docker-compose.yml" 192L, 5002B written root@fr1 /var/lib/docker/compose/chat_ai_awit_io # systemctl restart docker-compose@chat_ai_awit_io root@fr1 /var/lib/docker/compose/chat_ai_awit_io # docker-compose logs -f -n 100 webui webui-1 | 2026-05-09 20:15:10.130 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:11.245 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:12.164 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:16.106 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:22.044 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:22.410 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:23.885 | WARNING | open_webui.socket.main:periodic_usage_pool_cleanup:207 - Failed to acquire cleanup lock after retries. Skipping cleanup. webui-1 | 2026-05-09 20:15:27.058 | ERROR | open_webui.socket.main:periodic_session_pool_cleanup:182 - Unable to renew session cleanup lock. Exiting. webui-1 | 2026-05-09 20:15:31.157 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /_app/version.json HTTP/1.1" 200 webui-1 | 2026-05-09 20:16:05.272 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /static/favicon.png HTTP/1.1" 200 webui-1 | 2026-05-09 20:16:05.299 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:16:05.606 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=1 HTTP/1.1" 200 webui-1 | 2026-05-09 20:16:05.708 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=2 HTTP/1.1" 200 webui-1 | 2026-05-09 20:16:05.819 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/search?query=&page=3 HTTP/1.1" 200 webui-1 | 2026-05-09 20:16:07.233 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 2c0f:f3c8:0:c020::65:0 - "GET /api/v1/notes/c875220d-12c6-4a00-af9c-7dc9cb5dd6cf HTTP/1.1" 500 webui-1 | Exception in ASGI application webui-1 | Traceback (most recent call last): webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 416, in run_asgi webui-1 | result = await app( # type: ignore[func-returns-value] webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ webui-1 | return await self.app(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1160, in __call__ webui-1 | await super().__call__(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ webui-1 | await self.app(scope, receive, _send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send_wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 214, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 178, in __call__ webui-1 | await self.app(scope, receive, send_with_timing) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 99, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ webui-1 | with recv_stream, send_stream, collapse_excgroups(): webui-1 | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ webui-1 | self.gen.throw(typ, value, traceback) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in __call__ webui-1 | response = await self.dispatch_func(request, call_next) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch webui-1 | response = await call_next(request) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next webui-1 | raise app_exc from app_exc.__cause__ or app_exc.__context__ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro webui-1 | await self.app(scope, receive_or_disconnect, send_no_error) webui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 265, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/__init__.py", line 104, in __call__ webui-1 | return await self._zstd(scope, receive, send) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in __call__ webui-1 | await self.app(scope, receive, wrapper) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ webui-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in __call__ webui-1 | await self.middleware_stack(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app webui-1 | await route.handle(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle webui-1 | await self.app(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app webui-1 | await wrap_app_handling_exceptions(app, request)(scope, receive, send) webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app webui-1 | raise exc webui-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app webui-1 | await app(scope, receive, sender) webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app webui-1 | response = await f(request) webui-1 | ^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app webui-1 | raw_response = await run_endpoint_function( webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function webui-1 | return await dependant.call(**values) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | File "/app/backend/open_webui/routers/notes.py", line 297, in get_note_by_id webui-1 | return NoteResponse(**note.model_dump(), write_access=write_access, is_pinned=note.id in pinned_note_ids) webui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ webui-1 | TypeError: open_webui.routers.notes.NoteResponse() got multiple values for keyword argument 'is_pinned' ```
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

your issue is the migration failed. for fix see: https://docs.openwebui.com/troubleshooting/manual-database-migration

<!-- gh-comment-id:4413588081 --> @Classic298 commented on GitHub (May 9, 2026): your issue is the migration failed. for fix see: https://docs.openwebui.com/troubleshooting/manual-database-migration
Author
Owner

@nkukard commented on GitHub (May 9, 2026):

Could I kindly ask if there is a specific migration you had in mind I"m missing?

root@0a1bc1ff2b0c:/app/backend/open_webui# alembic current -v
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
Current revision(s) for postgresql://owebui:***@postgresql/owebui:
Rev: a0b1c2d3e4f5 (head)
Parent: 4de81c2a3af1
Path: /app/backend/open_webui/migrations/versions/a0b1c2d3e4f5_add_memory_user_id_index.py

    Add memory user_id index

    Revision ID: a0b1c2d3e4f5
    Revises: 4de81c2a3af1
    Create Date: 2025-09-15 03:00:00.000000

root@0a1bc1ff2b0c:/app/backend/open_webui# alembic heads
a0b1c2d3e4f5 (head)
root@0a1bc1ff2b0c:/app/backend/open_webui# alembic history
4de81c2a3af1 -> a0b1c2d3e4f5 (head), Add memory user_id index
56359461a091 -> 4de81c2a3af1, add pinned_note table
c1d2e3f4a5b6 -> 56359461a091, add calendar tables
e1f2a3b4c5d6 -> c1d2e3f4a5b6, Add shared_chat table and migrate existing shares
b7c8d9e0f1a2 -> e1f2a3b4c5d6, Add is_pinned to note table
d4e5f6a7b8c9 -> b7c8d9e0f1a2, add last_read_at to chat
a3dd5bedd151 -> d4e5f6a7b8c9, add automation tables
...
<!-- gh-comment-id:4413628094 --> @nkukard commented on GitHub (May 9, 2026): Could I kindly ask if there is a specific migration you had in mind I"m missing? ``` root@0a1bc1ff2b0c:/app/backend/open_webui# alembic current -v INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. Current revision(s) for postgresql://owebui:***@postgresql/owebui: Rev: a0b1c2d3e4f5 (head) Parent: 4de81c2a3af1 Path: /app/backend/open_webui/migrations/versions/a0b1c2d3e4f5_add_memory_user_id_index.py Add memory user_id index Revision ID: a0b1c2d3e4f5 Revises: 4de81c2a3af1 Create Date: 2025-09-15 03:00:00.000000 root@0a1bc1ff2b0c:/app/backend/open_webui# alembic heads a0b1c2d3e4f5 (head) root@0a1bc1ff2b0c:/app/backend/open_webui# alembic history 4de81c2a3af1 -> a0b1c2d3e4f5 (head), Add memory user_id index 56359461a091 -> 4de81c2a3af1, add pinned_note table c1d2e3f4a5b6 -> 56359461a091, add calendar tables e1f2a3b4c5d6 -> c1d2e3f4a5b6, Add shared_chat table and migrate existing shares b7c8d9e0f1a2 -> e1f2a3b4c5d6, Add is_pinned to note table d4e5f6a7b8c9 -> b7c8d9e0f1a2, add last_read_at to chat a3dd5bedd151 -> d4e5f6a7b8c9, add automation tables ... ```
Author
Owner

@Classic298 commented on GitHub (May 9, 2026):

pinned_note

<!-- gh-comment-id:4413641240 --> @Classic298 commented on GitHub (May 9, 2026): pinned_note
Author
Owner

@tkg61 commented on GitHub (May 10, 2026):

Also having this issue upgrading from 9.2 to 9.4.

I went through the manual database migration debug steps but it shows that everything is applied correctly

alembic current -v
INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG
DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None
INFO:open_webui.internal.wrappers:Connected to PostgreSQL database
INFO:open_webui.internal.db:Starting migrations
DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', [])
DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', [])
INFO:open_webui.internal.db: There is nothing to migrate
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
Current revision(s) for postgresql://postgres:***@psql-test-old-postgresql:5432/postgres:
Rev: a0b1c2d3e4f5 (head)
Parent: 4de81c2a3af1
Path: /app/backend/open_webui/migrations/versions/a0b1c2d3e4f5_add_memory_user_id_index.py

    Add memory user_id index

    Revision ID: a0b1c2d3e4f5
    Revises: 4de81c2a3af1
    Create Date: 2025-09-15 03:00:00.000000


root@owui:/app/backend/open_webui# alembic heads
INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG
DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None
INFO:open_webui.internal.wrappers:Connected to PostgreSQL database
INFO:open_webui.internal.db:Starting migrations
DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', [])
DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', [])
INFO:open_webui.internal.db:There is nothing to migrate
a0b1c2d3e4f5 (head)

alembic history
INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG
DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None
INFO:open_webui.internal.wrappers:Connected to PostgreSQL database
INFO:open_webui.internal.db:Starting migrations
DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', [])
DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', [])
INFO:open_webui.internal.db:There is nothing to migrate
4de81c2a3af1 -> a0b1c2d3e4f5 (head), Add memory user_id index
56359461a091 -> 4de81c2a3af1, add pinned_note table
c1d2e3f4a5b6 -> 56359461a091, add calendar tables
e1f2a3b4c5d6 -> c1d2e3f4a5b6, Add shared_chat table and migrate existing shares
b7c8d9e0f1a2 -> e1f2a3b4c5d6, Add is_pinned to note table
d4e5f6a7b8c9 -> b7c8d9e0f1a2, add last_read_at to chat
a3dd5bedd151 -> d4e5f6a7b8c9, add automation tables
b2c3d4e5f6a7 -> a3dd5bedd151, Add tasks and summary columns to chat table
a1b2c3d4e5f6 -> b2c3d4e5f6a7, add scim column to user table
f1e2d3c4b5a6 -> a1b2c3d4e5f6, Add skill table
8452d01d26d7 -> f1e2d3c4b5a6, Add access_grant table
374d2f66af06 -> 8452d01d26d7, Add chat_message table
c440947495f3 -> 374d2f66af06, Add prompt history table
81cc2ce44d79 -> c440947495f3, Add chat_file table
6283dc0e4d8d -> 81cc2ce44d79, Update channel file and knowledge table
3e0e00844bb0 -> 6283dc0e4d8d, Add channel file table
90ef40d4714e -> 3e0e00844bb0, Add knowledge_file table
b10670c03dd5 -> 90ef40d4714e, Update channel and channel members table
2f1211949ecc -> b10670c03dd5, Update user table
37f288994c47 -> 2f1211949ecc, Update messages and channel member table
a5c220713937 -> 37f288994c47, add_group_member_table
38d63c18f30f -> a5c220713937, Add reply_to_id column to message
3af16a1c9fb6 -> 38d63c18f30f, Add oauth_session table
018012973d35 -> 3af16a1c9fb6, update user table
d31026856c01 -> 018012973d35, Add indexes
9f0c9cd09105 -> d31026856c01, Update folder table data
3781e22d8b01 -> 9f0c9cd09105, Add note table
7826ab40b532 -> 3781e22d8b01, Update message & channel tables
57c599a3cb57 -> 7826ab40b532, Update file table
922e7a387820 -> 57c599a3cb57, Add channel table
4ace53fd72c8 -> 922e7a387820, Add group table
af906e964978 -> 4ace53fd72c8, Update folder table and change DateTime to BigInteger for timestamp fields
c29facfe716b -> af906e964978, Add feedback table
c69f45358db4 -> c29facfe716b, Update file table path
3ab32c4b8f59 -> c69f45358db4, Add folder table
1af9b942657b -> 3ab32c4b8f59, Update tags
242a2047eae0 -> 1af9b942657b, Migrate tags
6a39f3d8e55c -> 242a2047eae0, Update chat table
c0fbf31ca0db -> 6a39f3d8e55c, Add knowledge table
ca81bd47c050 -> c0fbf31ca0db, Update file table
7e5b5dc7342b -> ca81bd47c050, Add config table
<base> -> 7e5b5dc7342b, init

root@owui:/app/backend/open_webui# alembic current
INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG
DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None
INFO:open_webui.internal.wrappers:Connected to PostgreSQL database
INFO:open_webui.internal.db:Starting migrations
DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', [])
DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', [])
INFO:open_webui.internal.db:There is nothing to migrate
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
a0b1c2d3e4f5 (head)

<!-- gh-comment-id:4414106549 --> @tkg61 commented on GitHub (May 10, 2026): Also having this issue upgrading from 9.2 to 9.4. I went through the manual database migration debug steps but it shows that everything is applied correctly ``` alembic current -v INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None INFO:open_webui.internal.wrappers:Connected to PostgreSQL database INFO:open_webui.internal.db:Starting migrations DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', []) DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', []) INFO:open_webui.internal.db: There is nothing to migrate INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. Current revision(s) for postgresql://postgres:***@psql-test-old-postgresql:5432/postgres: Rev: a0b1c2d3e4f5 (head) Parent: 4de81c2a3af1 Path: /app/backend/open_webui/migrations/versions/a0b1c2d3e4f5_add_memory_user_id_index.py Add memory user_id index Revision ID: a0b1c2d3e4f5 Revises: 4de81c2a3af1 Create Date: 2025-09-15 03:00:00.000000 root@owui:/app/backend/open_webui# alembic heads INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None INFO:open_webui.internal.wrappers:Connected to PostgreSQL database INFO:open_webui.internal.db:Starting migrations DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', []) DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', []) INFO:open_webui.internal.db:There is nothing to migrate a0b1c2d3e4f5 (head) alembic history INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None INFO:open_webui.internal.wrappers:Connected to PostgreSQL database INFO:open_webui.internal.db:Starting migrations DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', []) DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', []) INFO:open_webui.internal.db:There is nothing to migrate 4de81c2a3af1 -> a0b1c2d3e4f5 (head), Add memory user_id index 56359461a091 -> 4de81c2a3af1, add pinned_note table c1d2e3f4a5b6 -> 56359461a091, add calendar tables e1f2a3b4c5d6 -> c1d2e3f4a5b6, Add shared_chat table and migrate existing shares b7c8d9e0f1a2 -> e1f2a3b4c5d6, Add is_pinned to note table d4e5f6a7b8c9 -> b7c8d9e0f1a2, add last_read_at to chat a3dd5bedd151 -> d4e5f6a7b8c9, add automation tables b2c3d4e5f6a7 -> a3dd5bedd151, Add tasks and summary columns to chat table a1b2c3d4e5f6 -> b2c3d4e5f6a7, add scim column to user table f1e2d3c4b5a6 -> a1b2c3d4e5f6, Add skill table 8452d01d26d7 -> f1e2d3c4b5a6, Add access_grant table 374d2f66af06 -> 8452d01d26d7, Add chat_message table c440947495f3 -> 374d2f66af06, Add prompt history table 81cc2ce44d79 -> c440947495f3, Add chat_file table 6283dc0e4d8d -> 81cc2ce44d79, Update channel file and knowledge table 3e0e00844bb0 -> 6283dc0e4d8d, Add channel file table 90ef40d4714e -> 3e0e00844bb0, Add knowledge_file table b10670c03dd5 -> 90ef40d4714e, Update channel and channel members table 2f1211949ecc -> b10670c03dd5, Update user table 37f288994c47 -> 2f1211949ecc, Update messages and channel member table a5c220713937 -> 37f288994c47, add_group_member_table 38d63c18f30f -> a5c220713937, Add reply_to_id column to message 3af16a1c9fb6 -> 38d63c18f30f, Add oauth_session table 018012973d35 -> 3af16a1c9fb6, update user table d31026856c01 -> 018012973d35, Add indexes 9f0c9cd09105 -> d31026856c01, Update folder table data 3781e22d8b01 -> 9f0c9cd09105, Add note table 7826ab40b532 -> 3781e22d8b01, Update message & channel tables 57c599a3cb57 -> 7826ab40b532, Update file table 922e7a387820 -> 57c599a3cb57, Add channel table 4ace53fd72c8 -> 922e7a387820, Add group table af906e964978 -> 4ace53fd72c8, Update folder table and change DateTime to BigInteger for timestamp fields c29facfe716b -> af906e964978, Add feedback table c69f45358db4 -> c29facfe716b, Update file table path 3ab32c4b8f59 -> c69f45358db4, Add folder table 1af9b942657b -> 3ab32c4b8f59, Update tags 242a2047eae0 -> 1af9b942657b, Migrate tags 6a39f3d8e55c -> 242a2047eae0, Update chat table c0fbf31ca0db -> 6a39f3d8e55c, Add knowledge table ca81bd47c050 -> c0fbf31ca0db, Update file table 7e5b5dc7342b -> ca81bd47c050, Add config table <base> -> 7e5b5dc7342b, init root@owui:/app/backend/open_webui# alembic current INFO:open_webui.env:GLOBAL_LOG_LEVEL: DEBUG DEBUG:open_webui.env:No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None INFO:open_webui.internal.wrappers:Connected to PostgreSQL database INFO:open_webui.internal.db:Starting migrations DEBUG:peewee:('CREATE TABLE IF NOT EXISTS "migratehistory" ("id" SERIAL NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "migrated_at" TIMESTAMP NOT NULL)', []) DEBUG:peewee:('SELECT "t1"."id", "t1"."name", "t1"."migrated_at" FROM "migratehistory" AS "t1" ORDER BY "t1"."id"', []) INFO:open_webui.internal.db:There is nothing to migrate INFO [alembic.runtime.migration] Context impl PostgresqlImpl. INFO [alembic.runtime.migration] Will assume transactional DDL. a0b1c2d3e4f5 (head) ```
Author
Owner

@Tungtono commented on GitHub (May 10, 2026):

fixed - new version coming out any minute now

do you know when is it coming out? currently have to do a hard find-and-replace in dockerfile to temporarily fix it

<!-- gh-comment-id:4414420149 --> @Tungtono commented on GitHub (May 10, 2026): > fixed - new version coming out any minute now do you know when is it coming out? currently have to do a hard find-and-replace in dockerfile to temporarily fix it
Author
Owner

@brandons209 commented on GitHub (May 10, 2026):

Same as @tkg61 , upgraded to v0.9.4, migration was successful however still getting the same error when trying to view a note.

<!-- gh-comment-id:4415994635 --> @brandons209 commented on GitHub (May 10, 2026): Same as @tkg61 , upgraded to v0.9.4, migration was successful however still getting the same error when trying to view a note.
Author
Owner

@Classic298 commented on GitHub (May 10, 2026):

its fixed n .5

<!-- gh-comment-id:4415999665 --> @Classic298 commented on GitHub (May 10, 2026): its fixed n .5
Author
Owner

@tkg61 commented on GitHub (May 10, 2026):

Works! Thanks for the fix

<!-- gh-comment-id:4416016104 --> @tkg61 commented on GitHub (May 10, 2026): Works! Thanks for the fix
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#123623