mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-15 21:19:39 -05:00
[GH-ISSUE #24484] [BUG] v0.9.3 - Notes completely broken: cannot open or create notes (TypeError: is_pinned) #123623
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @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
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
README.md.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:
Steps to Reproduce
Issue 1 – Opening an existing note:
Issue 2 – Creating a new note:
Logs & Screenshots
Error 1 – Reading a note (
GET /api/v1/notes/<id>→ 500):Error 2 – Creating a note (
POST /api/v1/notes/create→ 400):Additional Information
Root cause:
is_pinnedexists in the Pydantic model (NoteModel) but not in the SQLAlchemy database model (Note). This causes failures in two places:routers/notes.pyline 297:is_pinnedpassed twice toNoteResponse(once viamodel_dump(), once explicitly)models/notes.pyline 143:is_pinnedpassed to SQLAlchemyNoteconstructor where the column doesn't existSuggested fix for
routers/notes.pyline 297:Suggested fix for
models/notes.pyline 143:Workaround: Downgrade to v0.9.2.
@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:
Example:
bug: Login fails when the password contains special characters@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:, orissuemake triage difficult and slow down everyone.Example:
bug: Login fails when password contains special characters@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:
🟣 #22680 issue: has_public_read_access_grant is not defined in notes.py
Both issues are 500 errors in
open_webui/routers/notes.pythat make notes inaccessible after a version upgrade. That one is caused by a missing helper import on note fetch; this one is a differentget_note_by_idbug involvingis_pinnedbeing passed twice, but it is the same endpoint and the same user-visible failure mode.by R-omk ·
bug🟣 #22740 issue:
each_key_duplicateError and Broken Infinite Scroll on Notes PageThis 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.
@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":
Maybe additional database migration scripts required?
EDIT: OK, similar message is here, also:
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)
@Classic298 commented on GitHub (May 9, 2026):
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
@Classic298 commented on GitHub (May 9, 2026):
investigating
@Classic298 commented on GitHub (May 9, 2026):
can reproduce.
@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.
@Classic298 commented on GitHub (May 9, 2026):
https://github.com/open-webui/open-webui/pull/24486
@Classic298 commented on GitHub (May 9, 2026):
fixed - new version coming out any minute now
@nkukard commented on GitHub (May 9, 2026):
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.
@Classic298 commented on GitHub (May 9, 2026):
your issue is the migration failed. for fix see: https://docs.openwebui.com/troubleshooting/manual-database-migration
@nkukard commented on GitHub (May 9, 2026):
Could I kindly ask if there is a specific migration you had in mind I"m missing?
@Classic298 commented on GitHub (May 9, 2026):
pinned_note
@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
@Tungtono commented on GitHub (May 10, 2026):
do you know when is it coming out? currently have to do a hard find-and-replace in dockerfile to temporarily fix it
@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.
@Classic298 commented on GitHub (May 10, 2026):
its fixed n .5
@tkg61 commented on GitHub (May 10, 2026):
Works! Thanks for the fix