From 4a2de417b68dd5948e06bf71c939462405ad46c1 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Wed, 10 Dec 2025 15:06:48 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix:=20Error=20handling=20in=20F?= =?UTF-8?q?irebase=20and=20Local=20file=20deletion=20(#10894)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added try-catch blocks to handle errors during document deletion from the RAG API. - Implemented logging for 404 errors indicating that the document may have already been deleted. - Improved error logging for other deletion errors in both Firebase and Local file services. --- api/server/services/Files/Firebase/crud.js | 26 +++++++++++++++------- api/server/services/Files/Local/crud.js | 26 +++++++++++++++------- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/api/server/services/Files/Firebase/crud.js b/api/server/services/Files/Firebase/crud.js index 8e7a191609..170df45677 100644 --- a/api/server/services/Files/Firebase/crud.js +++ b/api/server/services/Files/Firebase/crud.js @@ -169,14 +169,24 @@ function extractFirebaseFilePath(urlString) { const deleteFirebaseFile = async (req, file) => { if (file.embedded && process.env.RAG_API_URL) { const jwtToken = req.headers.authorization.split(' ')[1]; - axios.delete(`${process.env.RAG_API_URL}/documents`, { - headers: { - Authorization: `Bearer ${jwtToken}`, - 'Content-Type': 'application/json', - accept: 'application/json', - }, - data: [file.file_id], - }); + try { + await axios.delete(`${process.env.RAG_API_URL}/documents`, { + headers: { + Authorization: `Bearer ${jwtToken}`, + 'Content-Type': 'application/json', + accept: 'application/json', + }, + data: [file.file_id], + }); + } catch (error) { + if (error.response?.status === 404) { + logger.warn( + `[deleteFirebaseFile] Document ${file.file_id} not found in RAG API, may have been deleted already`, + ); + } else { + logger.error('[deleteFirebaseFile] Error deleting document from RAG API:', error); + } + } } const fileName = extractFirebaseFilePath(file.filepath); diff --git a/api/server/services/Files/Local/crud.js b/api/server/services/Files/Local/crud.js index d3a3a21538..db553f57dd 100644 --- a/api/server/services/Files/Local/crud.js +++ b/api/server/services/Files/Local/crud.js @@ -210,14 +210,24 @@ const deleteLocalFile = async (req, file) => { if (file.embedded && process.env.RAG_API_URL) { const jwtToken = generateShortLivedToken(req.user.id); - axios.delete(`${process.env.RAG_API_URL}/documents`, { - headers: { - Authorization: `Bearer ${jwtToken}`, - 'Content-Type': 'application/json', - accept: 'application/json', - }, - data: [file.file_id], - }); + try { + await axios.delete(`${process.env.RAG_API_URL}/documents`, { + headers: { + Authorization: `Bearer ${jwtToken}`, + 'Content-Type': 'application/json', + accept: 'application/json', + }, + data: [file.file_id], + }); + } catch (error) { + if (error.response?.status === 404) { + logger.warn( + `[deleteLocalFile] Document ${file.file_id} not found in RAG API, may have been deleted already`, + ); + } else { + logger.error('[deleteLocalFile] Error deleting document from RAG API:', error); + } + } } if (cleanFilepath.startsWith(`/uploads/${req.user.id}`)) {