diff --git a/mobile/lib/module/upload/service/multipart.dart b/mobile/lib/module/upload/service/multipart.dart index f31e30248c..a1c83059a1 100644 --- a/mobile/lib/module/upload/service/multipart.dart +++ b/mobile/lib/module/upload/service/multipart.dart @@ -135,11 +135,21 @@ class MultiPartUploader { if (multipartInfo.status != MultipartStatus.completed) { // complete the multipart upload - await _completeMultipartUpload( - multipartInfo.urls.objectKey, - etags, - multipartInfo.urls.completeURL, - ); + try { + await _completeMultipartUpload( + multipartInfo.urls.objectKey, + etags, + multipartInfo.urls.completeURL, + ); + } on DioError catch (e) { + if (e.response?.statusCode == 404) { + _logger.severe( + "Multipart upload not found for key ${multipartInfo.urls.objectKey}", + ); + await _db.deleteMultipartTrack(localId); + } + rethrow; + } } return multipartInfo.urls.objectKey; @@ -263,7 +273,7 @@ class MultiPartUploader { MultipartStatus.completed, ); } catch (e) { - Logger("MultipartUpload").severe(e); + Logger("MultipartUpload").severe("upload failed for key $objectKey}", e); rethrow; } }