From f0e0cfcf029f5ee786735b8ff7555205f0d743ff Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Fri, 17 Apr 2026 07:44:42 +0200 Subject: [PATCH] perf: avoid redundant knowledge re-fetch in update_knowledge_access_by_id (#23799) After set_access_grants, the handler was reloading the same knowledge record via get_knowledge_by_id, which triggers an extra SELECT plus a nested fetch of access grants. set_access_grants already returns the newly-written grants and the local knowledge object is otherwise unchanged, so update it in place and reuse it for the response. https://claude.ai/code/session_01S18Lgqbih7Ry2JZUUv8TxF Co-authored-by: Claude --- backend/open_webui/routers/knowledge.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/routers/knowledge.py b/backend/open_webui/routers/knowledge.py index 36d20bdf5..d8d92b242 100644 --- a/backend/open_webui/routers/knowledge.py +++ b/backend/open_webui/routers/knowledge.py @@ -539,10 +539,12 @@ async def update_knowledge_access_by_id( 'sharing.public_knowledge', ) - await AccessGrants.set_access_grants('knowledge', id, form_data.access_grants, db=db) + knowledge.access_grants = await AccessGrants.set_access_grants( + 'knowledge', id, form_data.access_grants, db=db + ) return KnowledgeFilesResponse( - **(await Knowledges.get_knowledge_by_id(id=id, db=db)).model_dump(), + **knowledge.model_dump(), files=await Knowledges.get_file_metadatas_by_id(id, db=db), )