@@ -2146,24 +2146,30 @@ async def process_chat_payload(request, form_data, user, metadata, model):
21462146 # Check if the request has chat_id and is inside of a folder
21472147 # Uses lightweight column query — only fetches folder_id, not the full chat JSON blob
21482148 chat_id = metadata .get ('chat_id' , None )
2149+ folder_id = None
21492150 if chat_id and user :
21502151 folder_id = Chats .get_chat_folder_id (chat_id , user .id )
2151- if folder_id :
2152- folder = Folders .get_folder_by_id_and_user_id (folder_id , user .id )
2153-
2154- if folder and folder .data :
2155- if 'system_prompt' in folder .data :
2156- form_data = apply_system_prompt_to_body (folder .data ['system_prompt' ], form_data , metadata , user )
2157- if 'files' in folder .data :
2158- if metadata .get ('params' , {}).get ('function_calling' ) != 'native' :
2159- form_data ['files' ] = [
2160- * folder .data ['files' ],
2161- * form_data .get ('files' , []),
2162- ]
2163- else :
2164- # Native FC: skip RAG injection, builtin tools
2165- # will read folder knowledge from metadata.
2166- metadata ['folder_knowledge' ] = folder .data ['files' ]
2152+
2153+ # Fallback: use folder_id from metadata (temporary chats have no DB record)
2154+ if not folder_id :
2155+ folder_id = metadata .get ('folder_id' , None )
2156+
2157+ if folder_id and user :
2158+ folder = Folders .get_folder_by_id_and_user_id (folder_id , user .id )
2159+
2160+ if folder and folder .data :
2161+ if 'system_prompt' in folder .data :
2162+ form_data = apply_system_prompt_to_body (folder .data ['system_prompt' ], form_data , metadata , user )
2163+ if 'files' in folder .data :
2164+ if metadata .get ('params' , {}).get ('function_calling' ) != 'native' :
2165+ form_data ['files' ] = [
2166+ * folder .data ['files' ],
2167+ * form_data .get ('files' , []),
2168+ ]
2169+ else :
2170+ # Native FC: skip RAG injection, builtin tools
2171+ # will read folder knowledge from metadata.
2172+ metadata ['folder_knowledge' ] = folder .data ['files' ]
21672173
21682174 # Model "Knowledge" handling
21692175 user_message = get_last_user_message (form_data ['messages' ])
0 commit comments