android icon indicating copy to clipboard operation
android copied to clipboard

[BUG] Can't manually retry a failed camera upload

Open selius opened this issue 4 years ago • 15 comments

Hi,

It looks like in one of the recent versions you guys started to use content:// URIs instead of local paths to handle camera uploads. This works fine, but when an upload fails for some reason (like, the server is unavailable or no permissions to write to the upload directory), clicking on the upload in the Uploads list to retry it shows a "The file was not found in the local file system" message and does nothing.

From my quick debugging session, I found out that it happens because the code in the OnClickListener that's set in ExpandableUploadListAdapter.getView still expects the source path to be local and uses File.exists on it:

                    view.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            File file = new File(upload.getLocalPath());
                            if (file.exists()) {
                                TransferRequester requester = new TransferRequester();
                                requester.retry(mParentActivity, upload, false);
                                refreshView();
                            } else {
                                Snackbar snackbar = Snackbar.make(
                                        v.getRootView().findViewById(android.R.id.content),
                                        mParentActivity.getString(R.string.local_file_not_found_toast),
                                        Snackbar.LENGTH_LONG
                                );
                                snackbar.show();
                            }
                        }
                    });

Although I fixed it for myself by also trying to pass the path to DocumentFile.fromSingleUri, but I don't think I have enough overall knowledge of the project to suggest a good PR for this, so just letting you guys know.

selius avatar Oct 23 '21 16:10 selius

Hi,

It looks like in one of the recent versions you guys started to use content:// URIs instead of local paths to handle camera uploads. This works fine, but when an upload fails for some reason (like, the server is unavailable or no permissions to write to the upload directory), clicking on the upload in the Uploads list to retry it shows a "The file was not found in the local file system" message and does nothing.

From my quick debugging session, I found out that it happens because the code in the OnClickListener that's set in ExpandableUploadListAdapter.getView still expects the source path to be local and uses File.exists on it:

                    view.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            File file = new File(upload.getLocalPath());
                            if (file.exists()) {
                                TransferRequester requester = new TransferRequester();
                                requester.retry(mParentActivity, upload, false);
                                refreshView();
                            } else {
                                Snackbar snackbar = Snackbar.make(
                                        v.getRootView().findViewById(android.R.id.content),
                                        mParentActivity.getString(R.string.local_file_not_found_toast),
                                        Snackbar.LENGTH_LONG
                                );
                                snackbar.show();
                            }
                        }
                    });

Although I fixed it for myself by also trying to pass the path to DocumentFile.fromSingleUri, but I don't think I have enough overall knowledge of the project to suggest a good PR for this, so just letting you guys know.

Good morning @selius! Thanks for your work, collaborators are always welcome! In principle, your solution looks good. Don't worry, I encourage you to open a PR, you are welcome to join and our team of developers will be happy to help you and teach you more about the project, I hope to hear from you soon! Cheers!

fesave avatar Oct 25 '21 06:10 fesave

Thank you so much for reporting this @selius

You are completely right! We handled the retry all but not the individual one.

We will handle both from now on.

abelgardep avatar Oct 26 '21 09:10 abelgardep

I'm on Android Samsun SE20 - the app is the current latest 4.3.0. (573707a97) RETRY doesn't work.... and when I click on the individual files - I get the error message "The file was not found in the local file system"

Screenshot_20240723_123229_ownCloud

Please see above screenshot.

hodfords avatar Jul 23 '24 05:07 hodfords

@hodfords, which option do you set in the Original file will be? in the Auto-uploads menu in Settings

jesmrec avatar Jul 23 '24 06:07 jesmrec

These are settings in the auto-uploads.

Screenshot_20240810_214547_ownCloud

hodfords avatar Aug 10 '24 16:08 hodfords

Reopening, will take a look there. Did you catch some logs about the problem?

jesmrec avatar Aug 12 '24 06:08 jesmrec

you mean on the server side? or the app side?

hodfords avatar Aug 12 '24 09:08 hodfords

Here you go; I've had to obsufcate the user name and email addresss and truncate the message:-

D: 2024-08-12 17:00:37:758(LogsProvider.kt:49)release start logging 4.3.1 e0a273b09 V: 2024-08-12 17:00:39:812(MainApp.kt:212)SettingsActivity onPause() ending V: 2024-08-12 17:00:39:835(MainApp.kt:227)UploadListActivity onDestroy() ending V: 2024-08-12 17:00:39:848(FileDisplayActivity.kt:195)onCreate() start D: 2024-08-12 17:00:39:849(MainApp.kt:117)FileDisplayActivity onCreate(Bundle) starting I: 2024-08-12 17:00:39:874(AvatarManager.kt:78)Avatar with imageKey [email protected]/boo is not available in cache. Fetching from server... D: 2024-08-12 17:00:39:874(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:39:875(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:875(SingleSessionManager.java:180)getClientFor finishing D: 2024-08-12 17:00:39:876(GetRemoteUserAvatarOperation.kt:53)avatar URI: https://oneday.co.th/boo/index.php/avatar/jason/384 D: 2024-08-12 17:00:39:876(SingleSessionManager.java:98)getClientFor starting D: 2024-08-12 17:00:39:876(OwnCloudClient.java:129)Executing in request with id b26de777-1dfd-4177-afae-ee9463652434 V: 2024-08-12 17:00:39:876(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:877(SingleSessionManager.java:180)getClientFor finishing D: 2024-08-12 17:00:39:881(AppRater.java:45)Do not show the rate dialog again as the user decided V: 2024-08-12 17:00:39:881(FileDisplayActivity.kt:280)onCreate() end V: 2024-08-12 17:00:39:882(MainApp.kt:201)FileDisplayActivity onStart() starting D: 2024-08-12 17:00:39:882(BaseActivity.java:177)Account set: [email protected]/boo D: 2024-08-12 17:00:39:889(DrawerActivity.kt:299)Update Quota I: 2024-08-12 17:00:39:889(AvatarManager.kt:87)Avatar with imageKey [email protected]/boo is not available in cache. Generating one... E: 2024-08-12 17:00:39:890(FileDisplayActivity.kt:428)Still have a chance to lose the initialization of list fragment >( D: 2024-08-12 17:00:39:890(FileDisplayActivity.kt:363)Initializing Fragments in onAccountChanged.. D: 2024-08-12 17:00:39:891(ViewModelExt.kt:69)Use case executed: GetStoredQuotaUseCase with result: Success(data=UserQuota([email protected]/boo, available=-3, used=368305843398)) D: 2024-08-12 17:00:39:892(DrawerActivity.kt:299)Update Quota V: 2024-08-12 17:00:39:892(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:892(SingleSessionManager.java:180)getClientFor finishing D: 2024-08-12 17:00:39:893(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:39:894(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:891(SingleSessionManager.java:98)getClientFor starting D: 2024-08-12 17:00:39:895(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:39:896(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:896(SingleSessionManager.java:180)getClientFor finishing D: 2024-08-12 17:00:39:897(SingleSessionManager.java:180)getClientFor finishing V: 2024-08-12 17:00:39:897(FileDisplayActivity.kt:778)onResume() start V: 2024-08-12 17:00:39:897(MainApp.kt:208)FileDisplayActivity onResume() starting D: 2024-08-12 17:00:39:897(ViewModelExt.kt:69)Use case executed: GetStoredQuotaUseCase with result: Success(data=UserQuota([email protected]/boo, available=-3, used=368305843398)) D: 2024-08-12 17:00:39:914(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:39:915(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:915(SingleSessionManager.java:180)getClientFor finishing W: 2024-08-12 17:00:39:916(DrawerActivity.kt:397)setDrawerMenuItemChecked has been called with invalid menu-item-ID V: 2024-08-12 17:00:39:917(FileDisplayActivity.kt:801)onResume() end D: 2024-08-12 17:00:39:919(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:39:919(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:39:920(SingleSessionManager.java:180)getClientFor finishing V: 2024-08-12 17:00:39:925(OperationsService.java:116)Destroying service D: 2024-08-12 17:00:39:964(OperationsService.java:88)Creating service D: 2024-08-12 17:00:40:129(FileActivity.java:385)Operations service connected V: 2024-08-12 17:00:40:131(MainApp.kt:216)SettingsActivity onStop() ending V: 2024-08-12 17:00:40:132(MainApp.kt:227)SettingsActivity onDestroy() ending V: 2024-08-12 17:00:41:020(FileDisplayActivity.kt:805)onPause() start V: 2024-08-12 17:00:41:021(MainApp.kt:212)FileDisplayActivity onPause() ending V: 2024-08-12 17:00:41:021(FileDisplayActivity.kt:813)onPause() end D: 2024-08-12 17:00:41:035(MainApp.kt:117)UploadListActivity onCreate(Bundle) starting V: 2024-08-12 17:00:41:052(MainApp.kt:201)UploadListActivity onStart() starting D: 2024-08-12 17:00:41:052(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:41:052(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:41:052(SingleSessionManager.java:180)getClientFor finishing D: 2024-08-12 17:00:41:054(BaseActivity.java:177)Account set: [email protected]/boo D: 2024-08-12 17:00:41:055(DrawerActivity.kt:299)Update Quota I: 2024-08-12 17:00:41:055(AvatarManager.kt:87)Avatar with imageKey [email protected]/boo is not available in cache. Generating one... D: 2024-08-12 17:00:41:056(DrawerActivity.kt:299)Update Quota D: 2024-08-12 17:00:41:057(ViewModelExt.kt:69)Use case executed: GetStoredQuotaUseCase with result: Success(data=UserQuota([email protected]/boo, available=-3, used=368305843398)) D: 2024-08-12 17:00:41:057(ViewModelExt.kt:69)Use case executed: GetStoredQuotaUseCase with result: Success(data=UserQuota([email protected]/boo, available=-3, used=368305843398)) V: 2024-08-12 17:00:41:058(MainApp.kt:208)UploadListActivity onResume() starting W: 2024-08-12 17:00:41:059(DrawerActivity.kt:397)setDrawerMenuItemChecked has been called with invalid menu-item-ID D: 2024-08-12 17:00:41:090(FileActivity.java:385)Operations service connected V: 2024-08-12 17:00:41:134(MainApp.kt:216)FileDisplayActivity onStop() ending V: 2024-08-12 17:00:41:137(FileDisplayActivity.kt:763)onSaveInstanceState() start V: 2024-08-12 17:00:41:137(MainApp.kt:223)FileDisplayActivity onSaveInstanceState(Bundle) starting V: 2024-08-12 17:00:41:138(FileDisplayActivity.kt:774)onSaveInstanceState() end W: 2024-08-12 17:00:41:566(GetRemoteUserAvatarOperation.kt:67)Not an image, failing with no avatar D: 2024-08-12 17:00:41:566(OwnCloudClient.java:129)Executing in request with id 0ac091c2-a26d-4f67-93ca-4cb0213cba73 D: 2024-08-12 17:00:41:567(AvatarManager.kt:114)Fetch avatar use case is success: false I: 2024-08-12 17:00:41:567(AvatarManager.kt:140)No avatar available, removing cached copy D: 2024-08-12 17:00:41:567(DiskLruImageCache.java:142)removeKey from cache: 2033014851 I: 2024-08-12 17:00:41:568(AvatarManager.kt:87)Avatar with imageKey [email protected]/boo is not available in cache. Generating one... D: 2024-08-12 17:00:42:268(GetRemoteCapabilitiesOperation.kt:71)Successful response {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK","totalitems":"","itemsperpage":""},"data":{"version":{"major":10,"minor":10,"micro":0,"string":"10.10.0","edition":"Community","product":"ownCloud"},"capabilities":{"core":{"pollinterval":30000,"webdav-root":"remote.php/webdav","status":{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"10.10.0.3","versionstring":"10.10.0","edition":"Community","productname":"ownCloud","product":"ownCloud","hostname":"oneday.co.th"},"support-url-signing":true},"checksums":{"supportedTypes":["SHA1"],"preferredUploadType":"SHA1"},"files":{"privateLinks":true,"privateLinksDetailsParam":true,"bigfilechunking":true,"blacklisted_files":[".htaccess"],"blacklisted_files_regex":"\.(part|filepart)$","favorites":true,"file_locking_support":true,"file_locking_enable_file_action":false,"undelete":true,"versioning":true},"dav":{"chunking":"1.0","reports":["search-files"],"propfind":{"depth_infinity":false},"trashbin":"1.0"},"files_sharing":{"api_enabled":true,"public":{"enabled":true,"password":{"enforced_for":{"read_only":false,"read_write":false,"upload_only":false,"read_write_delete":false},"enforced":false},"roles_api":true,"can_create_public_link":true,"expire_date":{"enabled":false},"send_mail":false,"social_share":true,"upload":true,"multiple":true,"supports_upload_only":true,"defaultPublicLinkShareName":"Public link"},"user":{"send_mail":false,"profile_picture":true,"expire_date":{"enabled":false}},"group":{"expire_date":{"enabled":false}},"remote":{"expire_date":{"enabled":false}},"resharing":true,"group_sharing":true,"auto_accept_share":true,"share_with_group_members_only":true,"share_with_membership_groups_only":true,"can_share":true,"user_enumeration":{"enabled":true,"group_members_only":false},"default_permissions":31,"providers_capabilities":{"ocinternal":{"user":["shareExpiration"],"group":["shareExpiration"],"link":["shareExpiration","passwordProtected"]},"ocFederatedSharing":{"remote":["shareExpiration"]}},"federation":{"outgoing":true,"incoming":true},"search_min_length":2},"notifications":{"ocs-endpoints":["list","get","delete"]}}}}} D: 2024-08-12 17:00:42:268(OwnCloudClient.java:129)Executing in request with id 17fc79b1-6ae9-4daf-9583-5e51b629af1c D: 2024-08-12 17:00:42:269(GetRemoteCapabilitiesOperation.kt:82)Get Capabilities completed and parsed to RemoteCapability(accountName=, versionMajor=10, versionMinor=10, versionMicro=0, versionString=10.10.0, versionEdition=Community, corePollinterval=30000, chunkingVersion=1.0, filesSharingApiEnabled=TRUE, filesSharingPublicEnabled=TRUE, filesSharingPublicPasswordEnforced=FALSE, filesSharingPublicPasswordEnforcedReadOnly=FALSE, filesSharingPublicPasswordEnforcedReadWrite=FALSE, filesSharingPublicPasswordEnforcedUploadOnly=FALSE, filesSharingPublicExpireDateEnabled=FALSE, filesSharingPublicExpireDateDays=0, filesSharingPublicExpireDateEnforced=FALSE, filesSharingPublicUpload=TRUE, filesSharingPublicMultiple=TRUE, filesSharingPublicSupportsUploadOnly=TRUE, filesSharingResharing=TRUE, filesSharingFederationOutgoing=TRUE, filesSharingFederationIncoming=TRUE, filesSharingUserProfilePicture=TRUE, filesBigFileChunking=TRUE, filesUndelete=TRUE, filesVersioning=TRUE, filesPrivateLinks=TRUE, filesAppProviders=null, spaces=null, passwordPolicy=null) D: 2024-08-12 17:00:42:271(ViewModelExt.kt:178)Use case executed: RefreshCapabilitiesFromServerAsyncUseCase with result: Success(data=kotlin.Unit) D: 2024-08-12 17:00:42:779(OwnCloudClient.java:129)Executing in request with id 9a3b0728-d147-4932-9ddd-87f7897f61c3 D: 2024-08-12 17:00:42:779(GetRemoteUserInfoOperation.kt:58)Successful response {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK","totalitems":"","itemsperpage":""},"data":{"id":"jason","display-name":"jason","email":"[email protected]"}}} D: 2024-08-12 17:00:42:780(GetRemoteUserInfoOperation.kt:68)Get User Info completed and parsed to RemoteUserInfo(id=jason, displayName=jason, [email protected]) D: 2024-08-12 17:00:42:780(SyncProfileOperation.kt:56)User info synchronized for account [email protected]/boo E: 2024-08-12 17:00:42:825(GetRemoteSpacesOperation.kt:78)*** status code: 404; response message:

404 Not Found

Not Found

The requested URL /boo/graph/v1.0/me/drives was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

E: 2024-08-12 17:00:42:825(GetRemoteSpacesOperation.kt:76)Failed response while getting spaces for user D: 2024-08-12 17:00:42:826(OwnCloudClient.java:129)Executing in request with id dd8c8f04-31db-40dc-ba2c-4a1f91b2bd86 D: 2024-08-12 17:00:42:844(SingleSessionManager.java:98)getClientFor starting V: 2024-08-12 17:00:42:844(SingleSessionManager.java:125)reusing client for account [email protected]/boo D: 2024-08-12 17:00:42:844(SingleSessionManager.java:180)getClientFor finishing E: 2024-08-12 17:00:42:871(GetRemoteSpacesOperation.kt:78)*** status code: 404; response message:

404 Not Found

Not Found

The requested URL /boo/graph/v1.0/me/drives was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

E: 2024-08-12 17:00:42:871(GetRemoteSpacesOperation.kt:76)Failed response while getting spaces for user D: 2024-08-12 17:00:42:872(OwnCloudClient.java:129)Executing in request with id 77b14158-8a8f-4d33-bb7f-4c6ed18eefb9 I: 2024-08-12 17:00:43:702(ReadRemoteFolderOperation.kt:97)Synchronized / with 6 files. - HTTP status code: 207 D: 2024-08-12 17:00:43:703(OwnCloudClient.java:129)Executing in request with id 35d27c33-4cca-4692-8f96-5af43ff5ac61 I: 2024-08-12 17:00:44:211(ReadRemoteFolderOperation.kt:97)Synchronized / with 6 files. - HTTP status code: 207 D: 2024-08-12 17:00:44:212(OwnCloudClient.java:129)Executing in request with id 3c327aa3-6948-4075-9064-c062c09cb19a D: 2024-08-12 17:00:44:221(ViewModelExt.kt:69)Use case executed: SynchronizeFolderUseCase with result: Success(data=kotlin.Unit) I: 2024-08-12 17:00:44:608(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240503_221220.jpg has been enqueued. I: 2024-08-12 17:00:44:627(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240505_172641.mp4 has been enqueued. D: 2024-08-12 17:00:44:632(UploadFileFromFileSystemWorker.kt:149)Upload with id (8578) has been found in database. D: 2024-08-12 17:00:44:633(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8578, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240503_221220.jpg, remotePath=/Phones/Samsung_SE20//20240503_221220.jpg, [email protected]/boo, fileSize=1933761, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895354, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_PICTURE, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:634(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

I: 2024-08-12 17:00:44:651(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240505_191245.mp4 has been enqueued. I: 2024-08-12 17:00:44:670(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240506_100947.mp4 has been enqueued. D: 2024-08-12 17:00:44:673(UploadFileFromFileSystemWorker.kt:149)Upload with id (8664) has been found in database. D: 2024-08-12 17:00:44:674(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8664, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240505_172641.mp4, remotePath=/Phones/Samsung_SE20//20240505_172641.mp4, [email protected]/boo, fileSize=60923767, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895516, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:675(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

I: 2024-08-12 17:00:44:700(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_103051.mp4 has been enqueued. D: 2024-08-12 17:00:44:714(UploadFileFromFileSystemWorker.kt:149)Upload with id (8667) has been found in database. D: 2024-08-12 17:00:44:714(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8667, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240505_191245.mp4, remotePath=/Phones/Samsung_SE20//20240505_191245.mp4, [email protected]/boo, fileSize=34537378, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895600, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:716(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

D: 2024-08-12 17:00:44:721(OwnCloudClient.java:129)Executing in request with id 744819fc-2775-4ac9-80d4-6535ad9a5872 D: 2024-08-12 17:00:44:721(GetRemoteCapabilitiesOperation.kt:71)Successful response {"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK","totalitems":"","itemsperpage":""},"data":{"version":{"major":10,"minor":10,"micro":0,"string":"10.10.0","edition":"Community","product":"ownCloud"},"capabilities":{"core":{"pollinterval":30000,"webdav-root":"remote.php/webdav","status":{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"10.10.0.3","versionstring":"10.10.0","edition":"Community","productname":"ownCloud","product":"ownCloud","hostname":"oneday.co.th"},"support-url-signing":true},"checksums":{"supportedTypes":["SHA1"],"preferredUploadType":"SHA1"},"files":{"privateLinks":true,"privateLinksDetailsParam":true,"bigfilechunking":true,"blacklisted_files":[".htaccess"],"blacklisted_files_regex":"\.(part|filepart)$","favorites":true,"file_locking_support":true,"file_locking_enable_file_action":false,"undelete":true,"versioning":true},"dav":{"chunking":"1.0","reports":["search-files"],"propfind":{"depth_infinity":false},"trashbin":"1.0"},"files_sharing":{"api_enabled":true,"public":{"enabled":true,"password":{"enforced_for":{"read_only":false,"read_write":false,"upload_only":false,"read_write_delete":false},"enforced":false},"roles_api":true,"can_create_public_link":true,"expire_date":{"enabled":false},"send_mail":false,"social_share":true,"upload":true,"multiple":true,"supports_upload_only":true,"defaultPublicLinkShareName":"Public link"},"user":{"send_mail":false,"profile_picture":true,"expire_date":{"enabled":false}},"group":{"expire_date":{"enabled":false}},"remote":{"expire_date":{"enabled":false}},"resharing":true,"group_sharing":true,"auto_accept_share":true,"share_with_group_members_only":true,"share_with_membership_groups_only":true,"can_share":true,"user_enumeration":{"enabled":true,"group_members_only":false},"default_permissions":31,"providers_capabilities":{"ocinternal":{"user":["shareExpiration"],"group":["shareExpiration"],"link":["shareExpiration","passwordProtected"]},"ocFederatedSharing":{"remote":["shareExpiration"]}},"federation":{"outgoing":true,"incoming":true},"search_min_length":2},"notifications":{"ocs-endpoints":["list","get","delete"]}}}}} D: 2024-08-12 17:00:44:722(GetRemoteCapabilitiesOperation.kt:82)Get Capabilities completed and parsed to RemoteCapability(accountName=, versionMajor=10, versionMinor=10, versionMicro=0, versionString=10.10.0, versionEdition=Community, corePollinterval=30000, chunkingVersion=1.0, filesSharingApiEnabled=TRUE, filesSharingPublicEnabled=TRUE, filesSharingPublicPasswordEnforced=FALSE, filesSharingPublicPasswordEnforcedReadOnly=FALSE, filesSharingPublicPasswordEnforcedReadWrite=FALSE, filesSharingPublicPasswordEnforcedUploadOnly=FALSE, filesSharingPublicExpireDateEnabled=FALSE, filesSharingPublicExpireDateDays=0, filesSharingPublicExpireDateEnforced=FALSE, filesSharingPublicUpload=TRUE, filesSharingPublicMultiple=TRUE, filesSharingPublicSupportsUploadOnly=TRUE, filesSharingResharing=TRUE, filesSharingFederationOutgoing=TRUE, filesSharingFederationIncoming=TRUE, filesSharingUserProfilePicture=TRUE, filesBigFileChunking=TRUE, filesUndelete=TRUE, filesVersioning=TRUE, filesPrivateLinks=TRUE, filesAppProviders=null, spaces=null, passwordPolicy=null) D: 2024-08-12 17:00:44:723(ViewModelExt.kt:178)Use case executed: RefreshCapabilitiesFromServerAsyncUseCase with result: Success(data=kotlin.Unit) I: 2024-08-12 17:00:44:727(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_105231.mp4 has been enqueued. D: 2024-08-12 17:00:44:741(UploadFileFromFileSystemWorker.kt:149)Upload with id (8669) has been found in database. D: 2024-08-12 17:00:44:742(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8669, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240506_100947.mp4, remotePath=/Phones/Samsung_SE20//20240506_100947.mp4, [email protected]/boo, fileSize=70713828, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895710, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:743(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

I: 2024-08-12 17:00:44:749(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_142126.mp4 has been enqueued. D: 2024-08-12 17:00:44:755(UploadFileFromFileSystemWorker.kt:149)Upload with id (8670) has been found in database. D: 2024-08-12 17:00:44:756(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8670, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_103051.mp4, remotePath=/Phones/Samsung_SE20//20240507_103051.mp4, [email protected]/boo, fileSize=30510383, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895782, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) D: 2024-08-12 17:00:44:765(UploadFileFromFileSystemWorker.kt:149)Upload with id (8671) has been found in database. I: 2024-08-12 17:00:44:765(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_164416.mp4 has been enqueued. D: 2024-08-12 17:00:44:765(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8671, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_105231.mp4, remotePath=/Phones/Samsung_SE20//20240507_105231.mp4, [email protected]/boo, fileSize=25493134, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895886, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:769(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

E: 2024-08-12 17:00:44:770(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

I: 2024-08-12 17:00:44:787(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240505_191245.mp4 has been enqueued. D: 2024-08-12 17:00:44:805(UploadFileFromFileSystemWorker.kt:149)Upload with id (8673) has been found in database. D: 2024-08-12 17:00:44:805(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8673, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_142126.mp4, remotePath=/Phones/Samsung_SE20//20240507_142126.mp4, [email protected]/boo, fileSize=10362053, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306895960, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:808(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

I: 2024-08-12 17:00:44:813(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240506_100947.mp4 has been enqueued. D: 2024-08-12 17:00:44:820(UploadFileFromFileSystemWorker.kt:149)Upload with id (8674) has been found in database. D: 2024-08-12 17:00:44:820(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8674, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240507_164416.mp4, remotePath=/Phones/Samsung_SE20//20240507_164416.mp4, [email protected]/boo, fileSize=62113320, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306896038, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:822(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

D: 2024-08-12 17:00:44:836(UploadFileFromFileSystemWorker.kt:149)Upload with id (8679) has been found in database. I: 2024-08-12 17:00:44:836(UploadFileFromSystemUseCase.kt:58)Plain upload of /data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240512_110851.jpg has been enqueued. D: 2024-08-12 17:00:44:837(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8679, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240505_191245.mp4, remotePath=/Phones/Samsung_SE20//20240505_191245.mp4, [email protected]/boo, fileSize=34537378, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306896123, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:840(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

D: 2024-08-12 17:00:44:846(UploadFileFromFileSystemWorker.kt:149)Upload with id (8681) has been found in database. D: 2024-08-12 17:00:44:846(UploadFileFromFileSystemWorker.kt:150)Upload info: OCTransfer(id=8681, localPath=/data/user/0/com.owncloud.android/files/owncloud/tmp/[email protected]%2Fboo/Phones/Samsung_SE20//20240506_100947.mp4, remotePath=/Phones/Samsung_SE20//20240506_100947.mp4, [email protected]/boo, fileSize=70713828, status=TRANSFER_QUEUED, localBehaviour=COPY, forceOverwrite=false, transferEndTimestamp=1723306896199, lastResult=FOLDER_ERROR, createdBy=ENQUEUED_AS_CAMERA_UPLOAD_VIDEO, transferId=null, spaceId=null) E: 2024-08-12 17:00:44:849(UploadFileFromFileSystemWorker.kt:120)com.owncloud.android.domain.exceptions.LocalFileNotFoundException at com.owncloud.android.workers.UploadFileFromFileSystemWorker.checkPermissionsToReadDocumentAreGranted(UploadFileFromFileSystemWorker.kt:162) at com.owncloud.android.workers.UploadFileFromFileSystemWorker.doWork(UploadFileFromFileSystemWorker.kt:111) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:68) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

.......

V: 2024-08-12 17:00:52:219(MainApp.kt:212)UploadListActivity onPause() ending D: 2024-08-12 17:00:52:231(MainApp.kt:117)SettingsActivity onCreate(Bundle) starting V: 2024-08-12 17:00:52:241(MainApp.kt:201)SettingsActivity onStart() starting V: 2024-08-12 17:00:52:245(MainApp.kt:208)SettingsActivity onResume() starting V: 2024-08-12 17:00:52:755(MainApp.kt:216)UploadListActivity onStop() ending V: 2024-08-12 17:00:52:758(MainApp.kt:223)UploadListActivity onSaveInstanceState(Bundle) starting V: 2024-08-12 17:00:55:076(MainApp.kt:212)SettingsActivity onPause() ending D: 2024-08-12 17:00:55:086(MainApp.kt:117)LogsListActivity onCreate(Bundle) starting V: 2024-08-12 17:00:55:098(MainApp.kt:201)LogsListActivity onStart() starting V: 2024-08-12 17:00:55:099(MainApp.kt:208)LogsListActivity onResume() starting V: 2024-08-12 17:00:55:573(MainApp.kt:216)SettingsActivity onStop() ending V: 2024-08-12 17:00:55:574(MainApp.kt:223)SettingsActivity onSaveInstanceState(Bundle) starting

hodfords avatar Aug 12 '24 10:08 hodfords

Same problem with my partner's phone which is also Samsung.

hodfords avatar Aug 12 '24 10:08 hodfords

Thanks, will take a look. In case we'll not find something interesting in the logs, other option is getting a test account on your server, to check if server is somehow involved.

jesmrec avatar Aug 12 '24 12:08 jesmrec

We might be facing a race condition issue here. When we click on Retry, the UploadFileFromFileSystemWorker is executed, and the removeLocalFile() could be triggered before the upload has succeeded. As a result, this function deletes the tmp file, causing the upload to fail. It is just a hypothesis, it is not proven that this is the problem.

Aitorbp avatar Aug 16 '24 11:08 Aitorbp

Let us know if you want me to try to create test account on my server... The key thing is I have like 10,000+ photos/videos on my phone... I don't understand why there isn't a mechanism to re-add the pictures and/or search for the same picture (using filename + size) in the media directory instead of getting things stuck...... I'm a developer too but not on Kotlin...

hodfords avatar Aug 20 '24 03:08 hodfords

Not a problem, we would add pictures to check.

The key thing is I have like 10,000+ photos/videos on my phone... I don't understand why there isn't a mechanism to re-add the pictures and/or search for the same picture (using filename + size) in the media directory instead of getting things stuck

this is a different feature like folder sync, not auto uploads. It's in our roadmap.

About test server, you can send your server url and credentials:

https://infinite.owncloud.com/s/YiFzgStJUjaHtrE Pwd: aa55AA..

jesmrec avatar Aug 20 '24 07:08 jesmrec

Just uploaded a test account @jesmrec

hodfords avatar Sep 21 '24 11:09 hodfords

@hodfords i couldn't reproduce the problem on your server. Do you mind any action you did that could trigger the folder error?

jesmrec avatar Oct 02 '24 10:10 jesmrec