diff --git a/services/web/app/src/Features/Editor/EditorHttpController.js b/services/web/app/src/Features/Editor/EditorHttpController.js index 9235057dbe..6d74bffa78 100644 --- a/services/web/app/src/Features/Editor/EditorHttpController.js +++ b/services/web/app/src/Features/Editor/EditorHttpController.js @@ -14,6 +14,7 @@ const Errors = require('../Errors/Errors') const HttpErrorHandler = require('../Errors/HttpErrorHandler') const ProjectEntityUpdateHandler = require('../Project/ProjectEntityUpdateHandler') const DocstoreManager = require('../Docstore/DocstoreManager') +const logger = require('logger-sharelatex') const { expressify } = require('../../util/promises') module.exports = { @@ -100,9 +101,21 @@ async function _buildJoinProjectView(req, projectId, userId) { if (project == null) { throw new Errors.NotFoundError('project not found') } - const deletedDocsFromDocstore = await DocstoreManager.promises.getAllDeletedDocs( - projectId - ) + let deletedDocsFromDocstore = [] + try { + deletedDocsFromDocstore = await DocstoreManager.promises.getAllDeletedDocs( + projectId + ) + } catch (err) { + // The query in docstore is not optimized at this time and fails for + // projects with many very large, deleted documents. + // Not serving the user with deletedDocs from docstore may cause a minor + // UI issue with deleted files that are no longer available for restore. + logger.warn( + { err, projectId }, + 'soft-failure when fetching deletedDocs from docstore' + ) + } const members = await CollaboratorsGetter.promises.getInvitedMembersWithPrivilegeLevels( projectId )