From 5edf3f8e1d5d856b23251730bfbbe4d13ea73140 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Sat, 24 Aug 2024 16:09:17 +0530 Subject: [PATCH] [server] Handle case where fileInfo is missing --- server/pkg/controller/file.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/server/pkg/controller/file.go b/server/pkg/controller/file.go index f14ea34305..dc00c5e76c 100644 --- a/server/pkg/controller/file.go +++ b/server/pkg/controller/file.go @@ -499,10 +499,22 @@ func (c *FileController) GetFileInfo(ctx *gin.Context, userID int64, fileIDs []i // prepare a list of FileInfoResponse fileInfoList := make([]*ente.FileInfoResponse, 0) for _, fileID := range fileIDs { - fileInfoList = append(fileInfoList, &ente.FileInfoResponse{ - ID: fileID, - FileInfo: *fileInfoResponse[fileID], - }) + id := fileID + fileInfo := fileInfoResponse[id] + if fileInfo == nil { + // This should be happening only for older users who may have a stale + // collection_file entry for a file that user has deleted + log.WithField("fileID", id).Error("fileInfo not found") + fileInfoList = append(fileInfoList, &ente.FileInfoResponse{ + ID: id, + FileInfo: ente.FileInfo{FileSize: -1, ThumbnailSize: -1}, + }) + } else { + fileInfoList = append(fileInfoList, &ente.FileInfoResponse{ + ID: id, + FileInfo: *fileInfo, + }) + } } return &ente.FilesInfoResponse{ FilesInfo: fileInfoList,