Skip to content

[Bug]: unable to restart failed uploads #5231

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mnalis opened this issue Jun 5, 2023 · 10 comments
Closed

[Bug]: unable to restart failed uploads #5231

mnalis opened this issue Jun 5, 2023 · 10 comments

Comments

@mnalis
Copy link
Contributor

mnalis commented Jun 5, 2023

Summary

Sometimes pictures fail to upload for unknown reasons (several pictures trying to upload at once? flaky internet connection?). That is not so horrible in itself (although should be fixed), but what is very problematic is that re-trying that upload does not work ever.

I've initially encountered it with 3.1.1 version of the app, and as it didn't work I tried upgrading to 4.0.3 (latest f-droid release), with the result that all my half-uploaded pictures were silently removed 😢.
But I can reproduce same issue with pictures added via 4.0.3 exclusively.

There are several other issues tagged with upload-reliability which might be related.

Steps to reproduce

  1. notice that previous upload (added from gallery) did not upload
  2. notice that (after some tries - it was there originally!) thumbnail of that image is not shown anymore
  3. try to click retry button on that image

Expected behaviour

Picture should start uploading to the commons, and after several seconds show as uploaded OK

Actual behaviour

it returns immediately with Failed error, and an Android notification with "Failed to upload IMAGENAME" appears.

Device name

Huawei P30Pro

Android version

Android 10? (EMUI 12)

Commons app version

4.0.3~cf35307d9 (latest f-droid)

Device logs

sent via Settings / Send log file (user Mnalis)

Screen-shots

small_Screenshot_20230605_162147_fr free nrw commons

Would you like to work on the issue?

Prefer not

@mnalis mnalis added the bug label Jun 5, 2023
@mnalis
Copy link
Contributor Author

mnalis commented Jun 5, 2023

error from log seems to be:

2023-06-03 14:01:54,060     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Restarting for Contribution(media=fr.free.nrw.commons.Media@d892a4, pageId=db7414f2-6cf3-4ff3-b648-c21708
d89458, state=2, transferred=0, decimalCoords=45.77798843361111|15.936743736111112, dateCreatedSource=exif, wikidataPlace=null, chunkInfo=null, depictedItems=[DepictedItem(name=statue, descri
ption=sculpture primarily conceived as a representational figure, imageUrl=https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/0_Vénus_de_Milo_-_Ma_399_-_Louvre_1.JPG/70px-0_Vénus_de_Mi
lo_-_Ma_399_-_Louvre_1.JPG, instanceOfs=[Q18783400], commonsCategories=[CategoryItem: 'Statues'], isSelected=false, id=Q179700)], mimeType=null, localUri=/data/user/0/fr.free.nrw.commons/cach
e/CommonsContributions/ce6e325a-2a00-4ebe-8e0d-60e917a253b5.jpg, dataLength=3496683, dateCreated=Thu May 25 18:16:51 GMT+02:00 2023, dateCreatedString=2023-05-25, dateModified=Sat Jun 03 14:0
1:54 GMT+02:00 2023, hasInvalidLocation=0, contentUri=content://com.android.providers.media.documents/document/image%3A106000, countryCode=null, imageSHA1=bceb78e3d0d1f06f8c7a1ad69f59123b0830
e188)
2023-06-03 14:01:54,115     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-03 14:01:54,131     [ERROR] [file-logging-thread-1] [UploadWorker] : java.io.FileNotFoundException: /data/user/0/fr.free.nrw.commons/cache/CommonsContributions/ce6e325a-2a00-4ebe-8e0d
-60e917a253b5.jpg: open failed: ENOENT (No such file or directory)
        at libcore.io.IoBridge.open(IoBridge.java:496)
        at java.io.FileInputStream.<init>(FileInputStream.java:159)
        at fr.free.nrw.commons.upload.FileUtilsWrapper.getFileChunks(FileUtilsWrapper.java:53)
        at fr.free.nrw.commons.upload.UploadClient.uploadFileToStash(UploadClient.java:80)
        at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:281)
        at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
        at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
        at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
        at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
        at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
        at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
        at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
        at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
        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)
Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
        at libcore.io.Linux.open(Native Method)
        at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
        at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
        at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
        at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8464)
        at libcore.io.IoBridge.open(IoBridge.java:482)
        ... 19 more

2023-06-03 14:01:54,131     [ERROR] [file-logging-thread-1] [UploadWorker] : Stash upload failed for contribution: Whale statue at Jarun, Zagreb.jpg

@mnalis
Copy link
Contributor Author

mnalis commented Jun 12, 2023

@mnalis
Copy link
Contributor Author

mnalis commented Jun 15, 2023

I can confirm that this bug is still present in latest f-droid release (4.1.0~1649d1e2c) on Android 10 (EMUI 12), Huawei P30 Pro.

What I did to reproduce it this time (although it does not seem to work every time, probably related to in which moment the Internet connection stops working):

  • take a picture with system camera
  • from system camera, click on share button
  • choose the Commons app to share to
  • fill in the picture metadata in Commons app and confirm it; the Commons app goes into background and control is returned to system camera app
  • after a second or two, disable Internet (disable mobile data from android settings)
  • after a few seconds re-enable Internet
  • switch to the Commons app
  • notice that the upload has failed (of course)
  • try to click retry
  • notice it fails again
  • (repeat last two steps as many times as you want: the upload will never succeed now no matter what you do)

Video:

small_SVID_20230615_151738_1.mp4
Logs (click to expand...)
2023-06-15 15:13:59,867     [DEBUG] [file-logging-thread-1] [UploadModel] : File created date is 1686842024590
2023-06-15 15:13:59,868     [DEBUG] [file-logging-thread-1] [FileMetadataUtils] : Retuning tags for pref:Author
2023-06-15 15:13:59,869     [DEBUG] [file-logging-thread-1] [FileProcessor] : Checking for tag: Artist
2023-06-15 15:13:59,869     [DEBUG] [file-logging-thread-1] [FileProcessor] : Checking for tag: CameraOwnerName
2023-06-15 15:13:59,870     [DEBUG] [file-logging-thread-1] [FileMetadataUtils] : Retuning tags for pref:Copyright
2023-06-15 15:13:59,870     [DEBUG] [file-logging-thread-1] [FileProcessor] : Checking for tag: Copyright
2023-06-15 15:13:59,870     [DEBUG] [file-logging-thread-1] [FileMetadataUtils] : Retuning tags for pref:Serial Numbers
2023-06-15 15:13:59,871     [DEBUG] [file-logging-thread-1] [FileProcessor] : Checking for tag: BodySerialNumber
2023-06-15 15:13:59,871     [DEBUG] [file-logging-thread-1] [FileProcessor] : Checking for tag: LensSerialNumber
2023-06-15 15:13:59,885     [DEBUG] [file-logging-thread-1] [FileProcessor] : Calling GPSExtractor
2023-06-15 15:13:59,886     [DEBUG] [file-logging-thread-1] [ImageCoordinates] : EXIF data has location info
2023-06-15 15:13:59,889     [DEBUG] [file-logging-thread-1] [CategoryApi] : URL: https://commons.wikimedia.org/w/api.php?action=query&prop=categories%7Ccoordinates%7Cpageprops&format=json&clshow=%21hidden&coprop=type%7Cname%7Cdim%7Ccountry%7Cregion%7Cglobe&codistancefrompoint=43.727138519166665%7C15.802839279166667&generator=geosearch&ggscoord=43.727138519166665%7C15.802839279166667&ggsradius=10000&ggslimit=10&ggsnamespace=6&ggsprop=type%7Cname%7Cdim%7Ccountry%7Cregion%7Cglobe&ggsprimary=all&formatversion=2
2023-06-15 15:13:59,889     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.1
2023-06-15 15:13:59,889     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:13:59,928     [DEBUG] [file-logging-thread-1] [MediaLicenseFragment] : Position: 3 Attribution 4.0
2023-06-15 15:14:00,150     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.1
2023-06-15 15:14:00,150     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:00,159     [INFO ] [file-logging-thread-1] [UploadMediaDetailAdapter$ViewHolder] : descItemEditText:fr.free.nrw.commons.ui.PasteSensitiveTextInputEditText{99ea7df VFED..CL. ......I. 0,0-0,0 #7f0900e4 app:id/description_item_edit_text}
2023-06-15 15:14:00,159     [DEBUG] [file-logging-thread-1] [UploadMediaDetailAdapter$ViewHolder] : UploadMediaDetail is UploadMediaDetail(languageCode=null, descriptionText=, captionText=)
2023-06-15 15:14:00,424     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,424     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,425     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,425     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,426     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,426     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,427     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,427     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,427     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,427     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,428     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,428     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,429     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,429     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,429     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,429     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,429     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,430     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,430     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,430     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,430     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,430     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,431     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,431     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,431     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,432     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,432     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,432     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,433     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,433     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,433     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,434     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:00,514     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.2
2023-06-15 15:14:00,514     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:00,892     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.3
2023-06-15 15:14:00,892     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:01,093     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.4
2023-06-15 15:14:01,094     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:01,244     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,244     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,245     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,245     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,246     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,246     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,246     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,247     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,247     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,247     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,248     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,248     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,248     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,249     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,249     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,250     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,250     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,250     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,251     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,251     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,251     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,252     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,252     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,252     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,253     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,253     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,253     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,254     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,254     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,254     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,255     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,255     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:14:01,303     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.5
2023-06-15 15:14:01,304     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:01,540     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.6
2023-06-15 15:14:01,540     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:01,762     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.7
2023-06-15 15:14:01,762     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:02,003     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.8
2023-06-15 15:14:02,004     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:02,234     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.9
2023-06-15 15:14:02,234     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:02,458     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 1.0
2023-06-15 15:14:02,458     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:14:20,560     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Current image quality is -2
2023-06-15 15:14:20,560     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Checking the validity of image
2023-06-15 15:14:20,560     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Checking for duplicate image /data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg
2023-06-15 15:14:20,560     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Checking for image geolocation /data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg
2023-06-15 15:14:20,560     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Checking for dark image /data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg
2023-06-15 15:14:20,561     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Checking for image title [UploadMediaDetail(languageCode=hr, descriptionText=, captionText=divlja kupina u cvatu, otok Prvić)]
2023-06-15 15:14:20,571     [INFO ] [file-logging-thread-1] [FileUtils] : File SHA1: e3930b23390a7356e1bbf166f6237ead41685ea1
2023-06-15 15:14:20,583     [DEBUG] [file-logging-thread-1] [ImageUtils] : Checking image darkness took 20 ms.
2023-06-15 15:14:20,797     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Result for valid title is false
2023-06-15 15:14:20,797     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : Result for duplicate image false
2023-06-15 15:14:20,798     [DEBUG] [file-logging-thread-1] [ImageProcessingService] : duplicate: 0, geo: 0, dark: 0, title: 0fbmd:0exif:0
2023-06-15 15:15:47,988     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,989     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,991     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,991     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,991     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,991     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,991     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,992     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,992     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,992     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,993     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,993     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,994     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,995     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,995     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,995     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,996     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,998     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:47,999     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,001     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,001     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,001     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,001     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,001     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:48,002     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,122     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,122     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,123     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,123     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,124     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,124     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,125     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,125     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,126     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,126     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,127     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,127     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,128     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,128     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,129     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,129     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,130     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,130     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,131     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,131     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,132     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,132     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,133     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,133     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:15:59,133     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,234     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,235     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,235     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,235     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,236     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,236     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,236     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,237     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,237     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,238     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,238     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,238     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,239     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,239     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,240     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,240     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,240     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,241     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,241     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,241     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,242     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,242     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,243     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,243     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:14,243     [DEBUG] [file-logging-thread-1] [CategoriesModel] : Previous year: 2022
2023-06-15 15:16:23,334     [INFO ] [file-logging-thread-1] [FileUtils] : File SHA1: 48c6d927c056c08985e20cdc9c5c690cedac4fe8
2023-06-15 15:16:23,335     [DEBUG] [file-logging-thread-1] [UploadModel] : Created timestamp while building contribution is 1686842024590, Thu Jun 15 17:13:44 GMT+02:00 2023
2023-06-15 15:16:23,335     [DEBUG] [file-logging-thread-1] [UploadController] : UploadController/doInBackground, contribution.getLocalUri():/data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg
2023-06-15 15:16:23,497     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-15 15:16:23,535     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Sending Chunk number: 1, offset: 0
2023-06-15 15:16:25,673     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Received Chunk number: 1, offset: 524288
2023-06-15 15:16:25,681     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Sending Chunk number: 2, offset: 524288
2023-06-15 15:16:27,392     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Received Chunk number: 2, offset: 1048576
2023-06-15 15:16:27,397     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Sending Chunk number: 3, offset: 1048576
2023-06-15 15:16:30,621     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Received Chunk number: 3, offset: 1572864
2023-06-15 15:16:30,631     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Sending Chunk number: 4, offset: 1572864
2023-06-15 15:16:33,479     [DEBUG] [file-logging-thread-1] [UploadClient] : Chunk: Received Chunk number: 4, offset: 0
2023-06-15 15:16:33,483     [DEBUG] [file-logging-thread-1] [UploadClient] : Upload stash success 1ca15341-d999-460b-9d05-36b1276cb7d3
2023-06-15 15:16:33,484     [DEBUG] [file-logging-thread-1] [UploadWorker] : Upload to stash success for fileName: divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:16:33,485     [DEBUG] [file-logging-thread-1] [UploadWorker] : Ensure uniqueness of filename
2023-06-15 15:16:33,962     [DEBUG] [file-logging-thread-1] [PageContentsCreator] : Template: == {{int:filedesc}} ==
{{Information
|description=

|source={{own}}
|author=[[User:Mnalis|Mnalis]]
|date={{According to Exif data|2023-06-15}}
}}
{{Location|43.727138519166665|15.802839279166667}}
== {{int:license-header}} ==
{{self|cc-by-4.0}}

{{Uploaded from Mobile|platform=Android|version=4.1.0~1649d1e2c}}

[[Category:Rubus]]
[[Category:Island of Prvić (near Šibenik)]]
[[Category:Flower, plant]]
2023-06-15 15:16:34,016     [ERROR] [file-logging-thread-1] [UploadWorker] : java.lang.NullPointerException: The supplied value is null
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn$OnErrorReturnObserver.onError(ObservableOnErrorReturn.java:80)
	at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onError(BodyObservable.java:72)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:56)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn.subscribeActual(ObservableOnErrorReturn.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:300)
	at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
	at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
	at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
	at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	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)
Caused by: java.net.UnknownHostException: Unable to resolve host "commons.wikimedia.org": No address associated with hostname
	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156)
	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at fr.free.nrw.commons.OkHttpConnectionFactory$CommonHeaderRequestInterceptor.intercept(OkHttpConnectionFactory.java:67)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at fr.free.nrw.commons.OkHttpConnectionFactory$UnsuccessfulResponseInterceptor.intercept(OkHttpConnectionFactory.java:80)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:221)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at retrofit2.OkHttpCall.execute(OkHttpCall.java:190)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:42)
	... 27 more
	Suppressed: javax.net.ssl.SSLException: Read error: ssl=0x7ddbbf0808: I/O error during system call, Software caused connection abort
		at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
		at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
		at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:549)
		at okio.InputStreamSource.read(JvmOkio.kt:94)
		at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:125)
		at okio.RealBufferedSource.request(RealBufferedSource.kt:206)
		at okio.RealBufferedSource.require(RealBufferedSource.kt:199)
		at okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.kt:89)
		at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:618)
		at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:609)
		at okhttp3.internal.concurrent.TaskQueue$execute$1.runOnce(TaskQueue.kt:98)
		at okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116)
		at okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42)
		at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
		at java.lang.Thread.run(Thread.java:929)
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
	at libcore.io.Linux.android_getaddrinfo(Native Method)
	at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74)
	at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:200)
	at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74)
	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)
	... 55 more

2023-06-15 15:16:34,031     [ERROR] [file-logging-thread-1] [UploadWorker] : Upload from stash failed for contribution : divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:04,796     [DEBUG] [file-logging-thread-1] [LocationServiceManager] : Provider network disabled
2023-06-15 15:17:05,349     [DEBUG] [file-logging-thread-1] [LocationServiceManager] : on location changed
2023-06-15 15:17:05,349     [DEBUG] [file-logging-thread-1] [NearbyController] : Loading attractions near lat/lng: (43.72640206506983,15.801605186864325)
2023-06-15 15:17:05,349     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.3
2023-06-15 15:17:05,350     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:17:05,437     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Number of notifications is 1
2023-06-15 15:17:05,808     [DEBUG] [file-logging-thread-1] [NearbyPlaces] : 0 results at radius: 0.300000
2023-06-15 15:17:05,808     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : Fetching nearby items at radius 0.6
2023-06-15 15:17:05,808     [DEBUG] [file-logging-thread-1] [OkHttpJsonApiClient] : CUSTOM_SPARQLfalse
2023-06-15 15:17:06,010     [DEBUG] [file-logging-thread-1] [NearbyPlaces] : 1 results at radius: 0.600000
2023-06-15 15:17:06,011     [DEBUG] [file-logging-thread-1] [NearbyController] : Sorting places by distance...
2023-06-15 15:17:06,011     [DEBUG] [file-logging-thread-1] [NearbyNotificationCardView] : Update nearby card notification content
2023-06-15 15:17:10,975     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Restarting for Contribution(media=fr.free.nrw.commons.Media@213b6d6, pageId=1ca15341-d999-460b-9d05-36b1276cb7d3, state=2, transferred=1969272, decimalCoords=43.727138519166665|15.802839279166667, dateCreatedSource=exif, wikidataPlace=null, chunkInfo=ChunkInfo(uploadResult=UploadResult(result=Success, filekey=1a4xb5spxgt0.qyidk5.3134308.jpg, offset=0, filename=null), indexOfNextChunkToUpload=4, totalChunks=4), depictedItems=[DepictedItem(name=Rubus, description=genus of plants, imageUrl=https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Blackberry_fruits_2008_G1.jpg/70px-Blackberry_fruits_2008_G1.jpg, instanceOfs=[Q16521], commonsCategories=[CategoryItem: 'Rubus'], isSelected=false, id=Q602740)], mimeType=null, localUri=/data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg, dataLength=1969272, dateCreated=Thu Jun 15 17:13:44 GMT+02:00 2023, dateCreatedString=2023-06-15, dateModified=Thu Jun 15 15:16:33 GMT+02:00 2023, hasInvalidLocation=0, contentUri=content://media/external/images/media/106584, countryCode=null, imageSHA1=48c6d927c056c08985e20cdc9c5c690cedac4fe8)
2023-06-15 15:17:11,051     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-15 15:17:11,062     [DEBUG] [file-logging-thread-1] [UploadWorker] : Upload to stash success for fileName: divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:11,063     [DEBUG] [file-logging-thread-1] [UploadWorker] : Ensure uniqueness of filename
2023-06-15 15:17:11,789     [DEBUG] [file-logging-thread-1] [PageContentsCreator] : Template: == {{int:filedesc}} ==
{{Information
|description=

|source={{own}}
|author=[[User:Mnalis|Mnalis]]
|date={{According to Exif data|2023-06-15}}
}}
{{Location|43.727138519166665|15.802839279166667}}
== {{int:license-header}} ==
{{self|cc-by-4.0}}

{{Uploaded from Mobile|platform=Android|version=4.1.0~1649d1e2c}}

[[Category:Rubus]]
[[Category:Island of Prvić (near Šibenik)]]
[[Category:Flower, plant]]
2023-06-15 15:17:12,000     [ERROR] [file-logging-thread-1] [UploadClient] : Error in uploading file from stash
org.wikipedia.dataclient.mwapi.MwException: Key "1a4xb5spxgt0.qyidk5.3134308.jpg" not found in stash.

2023-06-15 15:17:12,001     [ERROR] [file-logging-thread-1] [UploadWorker] : java.lang.NullPointerException: The supplied value is null
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn$OnErrorReturnObserver.onError(ObservableOnErrorReturn.java:80)
	at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
	at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:44)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn.subscribeActual(ObservableOnErrorReturn.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:300)
	at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
	at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
	at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
	at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	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)
Caused by: java.lang.Exception: uploadstash-file-not-found
	at fr.free.nrw.commons.upload.UploadClient.lambda$uploadFileFromStash$3$UploadClient(UploadClient.java:227)
	at fr.free.nrw.commons.upload.-$$Lambda$UploadClient$-xVSLroq3t059tyyfYuDUQukbVk.apply(Unknown Source:4)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
	... 30 more

2023-06-15 15:17:12,002     [ERROR] [file-logging-thread-1] [UploadWorker] : Upload from stash failed for contribution : divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:25,779     [DEBUG] [file-logging-thread-1] [LocationServiceManager] : on location changed
2023-06-15 15:17:41,087     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Restarting for Contribution(media=fr.free.nrw.commons.Media@1767b60, pageId=1ca15341-d999-460b-9d05-36b1276cb7d3, state=2, transferred=0, decimalCoords=43.727138519166665|15.802839279166667, dateCreatedSource=exif, wikidataPlace=null, chunkInfo=ChunkInfo(uploadResult=UploadResult(result=Success, filekey=1a4xb5spxgt0.qyidk5.3134308.jpg, offset=0, filename=null), indexOfNextChunkToUpload=4, totalChunks=4), depictedItems=[DepictedItem(name=Rubus, description=genus of plants, imageUrl=https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Blackberry_fruits_2008_G1.jpg/70px-Blackberry_fruits_2008_G1.jpg, instanceOfs=[Q16521], commonsCategories=[CategoryItem: 'Rubus'], isSelected=false, id=Q602740)], mimeType=null, localUri=/data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg, dataLength=1969272, dateCreated=Thu Jun 15 17:13:44 GMT+02:00 2023, dateCreatedString=2023-06-15, dateModified=Thu Jun 15 15:17:41 GMT+02:00 2023, hasInvalidLocation=0, contentUri=content://media/external/images/media/106584, countryCode=null, imageSHA1=48c6d927c056c08985e20cdc9c5c690cedac4fe8)
2023-06-15 15:17:41,148     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-15 15:17:41,163     [DEBUG] [file-logging-thread-1] [UploadWorker] : Upload to stash success for fileName: divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:41,163     [DEBUG] [file-logging-thread-1] [UploadWorker] : Ensure uniqueness of filename
2023-06-15 15:17:41,911     [DEBUG] [file-logging-thread-1] [PageContentsCreator] : Template: == {{int:filedesc}} ==
{{Information
|description=

|source={{own}}
|author=[[User:Mnalis|Mnalis]]
|date={{According to Exif data|2023-06-15}}
}}
{{Location|43.727138519166665|15.802839279166667}}
== {{int:license-header}} ==
{{self|cc-by-4.0}}

{{Uploaded from Mobile|platform=Android|version=4.1.0~1649d1e2c}}

[[Category:Rubus]]
[[Category:Island of Prvić (near Šibenik)]]
[[Category:Flower, plant]]
2023-06-15 15:17:42,118     [ERROR] [file-logging-thread-1] [UploadClient] : Error in uploading file from stash
org.wikipedia.dataclient.mwapi.MwException: Key "1a4xb5spxgt0.qyidk5.3134308.jpg" not found in stash.

2023-06-15 15:17:42,119     [ERROR] [file-logging-thread-1] [UploadWorker] : java.lang.NullPointerException: The supplied value is null
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn$OnErrorReturnObserver.onError(ObservableOnErrorReturn.java:80)
	at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
	at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:44)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn.subscribeActual(ObservableOnErrorReturn.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:300)
	at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
	at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
	at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
	at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	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)
Caused by: java.lang.Exception: uploadstash-file-not-found
	at fr.free.nrw.commons.upload.UploadClient.lambda$uploadFileFromStash$3$UploadClient(UploadClient.java:227)
	at fr.free.nrw.commons.upload.-$$Lambda$UploadClient$-xVSLroq3t059tyyfYuDUQukbVk.apply(Unknown Source:4)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
	... 30 more

2023-06-15 15:17:42,119     [ERROR] [file-logging-thread-1] [UploadWorker] : Upload from stash failed for contribution : divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:44,840     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Restarting for Contribution(media=fr.free.nrw.commons.Media@2df718b, pageId=1ca15341-d999-460b-9d05-36b1276cb7d3, state=2, transferred=0, decimalCoords=43.727138519166665|15.802839279166667, dateCreatedSource=exif, wikidataPlace=null, chunkInfo=ChunkInfo(uploadResult=UploadResult(result=Success, filekey=1a4xb5spxgt0.qyidk5.3134308.jpg, offset=0, filename=null), indexOfNextChunkToUpload=4, totalChunks=4), depictedItems=[DepictedItem(name=Rubus, description=genus of plants, imageUrl=https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Blackberry_fruits_2008_G1.jpg/70px-Blackberry_fruits_2008_G1.jpg, instanceOfs=[Q16521], commonsCategories=[CategoryItem: 'Rubus'], isSelected=false, id=Q602740)], mimeType=null, localUri=/data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg, dataLength=1969272, dateCreated=Thu Jun 15 17:13:44 GMT+02:00 2023, dateCreatedString=2023-06-15, dateModified=Thu Jun 15 15:17:44 GMT+02:00 2023, hasInvalidLocation=0, contentUri=content://media/external/images/media/106584, countryCode=null, imageSHA1=48c6d927c056c08985e20cdc9c5c690cedac4fe8)
2023-06-15 15:17:44,898     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-15 15:17:44,908     [DEBUG] [file-logging-thread-1] [UploadWorker] : Upload to stash success for fileName: divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:44,908     [DEBUG] [file-logging-thread-1] [UploadWorker] : Ensure uniqueness of filename
2023-06-15 15:17:45,525     [DEBUG] [file-logging-thread-1] [PageContentsCreator] : Template: == {{int:filedesc}} ==
{{Information
|description=

|source={{own}}
|author=[[User:Mnalis|Mnalis]]
|date={{According to Exif data|2023-06-15}}
}}
{{Location|43.727138519166665|15.802839279166667}}
== {{int:license-header}} ==
{{self|cc-by-4.0}}

{{Uploaded from Mobile|platform=Android|version=4.1.0~1649d1e2c}}

[[Category:Rubus]]
[[Category:Island of Prvić (near Šibenik)]]
[[Category:Flower, plant]]
2023-06-15 15:17:45,778     [ERROR] [file-logging-thread-1] [UploadClient] : Error in uploading file from stash
org.wikipedia.dataclient.mwapi.MwException: Key "1a4xb5spxgt0.qyidk5.3134308.jpg" not found in stash.

2023-06-15 15:17:45,780     [ERROR] [file-logging-thread-1] [UploadWorker] : java.lang.NullPointerException: The supplied value is null
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn$OnErrorReturnObserver.onError(ObservableOnErrorReturn.java:80)
	at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
	at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:44)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn.subscribeActual(ObservableOnErrorReturn.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:300)
	at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
	at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
	at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
	at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	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)
Caused by: java.lang.Exception: uploadstash-file-not-found
	at fr.free.nrw.commons.upload.UploadClient.lambda$uploadFileFromStash$3$UploadClient(UploadClient.java:227)
	at fr.free.nrw.commons.upload.-$$Lambda$UploadClient$-xVSLroq3t059tyyfYuDUQukbVk.apply(Unknown Source:4)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
	... 30 more

2023-06-15 15:17:45,781     [ERROR] [file-logging-thread-1] [UploadWorker] : Upload from stash failed for contribution : divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:50,450     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Restarting for Contribution(media=fr.free.nrw.commons.Media@79ebda5, pageId=1ca15341-d999-460b-9d05-36b1276cb7d3, state=2, transferred=0, decimalCoords=43.727138519166665|15.802839279166667, dateCreatedSource=exif, wikidataPlace=null, chunkInfo=ChunkInfo(uploadResult=UploadResult(result=Success, filekey=1a4xb5spxgt0.qyidk5.3134308.jpg, offset=0, filename=null), indexOfNextChunkToUpload=4, totalChunks=4), depictedItems=[DepictedItem(name=Rubus, description=genus of plants, imageUrl=https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Blackberry_fruits_2008_G1.jpg/70px-Blackberry_fruits_2008_G1.jpg, instanceOfs=[Q16521], commonsCategories=[CategoryItem: 'Rubus'], isSelected=false, id=Q602740)], mimeType=null, localUri=/data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg, dataLength=1969272, dateCreated=Thu Jun 15 17:13:44 GMT+02:00 2023, dateCreatedString=2023-06-15, dateModified=Thu Jun 15 15:17:50 GMT+02:00 2023, hasInvalidLocation=0, contentUri=content://media/external/images/media/106584, countryCode=null, imageSHA1=48c6d927c056c08985e20cdc9c5c690cedac4fe8)
2023-06-15 15:17:50,509     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-15 15:17:50,522     [DEBUG] [file-logging-thread-1] [UploadWorker] : Upload to stash success for fileName: divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:50,525     [DEBUG] [file-logging-thread-1] [UploadWorker] : Ensure uniqueness of filename
2023-06-15 15:17:51,159     [DEBUG] [file-logging-thread-1] [PageContentsCreator] : Template: == {{int:filedesc}} ==
{{Information
|description=

|source={{own}}
|author=[[User:Mnalis|Mnalis]]
|date={{According to Exif data|2023-06-15}}
}}
{{Location|43.727138519166665|15.802839279166667}}
== {{int:license-header}} ==
{{self|cc-by-4.0}}

{{Uploaded from Mobile|platform=Android|version=4.1.0~1649d1e2c}}

[[Category:Rubus]]
[[Category:Island of Prvić (near Šibenik)]]
[[Category:Flower, plant]]
2023-06-15 15:17:51,374     [ERROR] [file-logging-thread-1] [UploadClient] : Error in uploading file from stash
org.wikipedia.dataclient.mwapi.MwException: Key "1a4xb5spxgt0.qyidk5.3134308.jpg" not found in stash.

2023-06-15 15:17:51,374     [ERROR] [file-logging-thread-1] [UploadWorker] : java.lang.NullPointerException: The supplied value is null
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn$OnErrorReturnObserver.onError(ObservableOnErrorReturn.java:80)
	at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
	at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:44)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn.subscribeActual(ObservableOnErrorReturn.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:300)
	at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
	at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
	at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
	at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	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)
Caused by: java.lang.Exception: uploadstash-file-not-found
	at fr.free.nrw.commons.upload.UploadClient.lambda$uploadFileFromStash$3$UploadClient(UploadClient.java:227)
	at fr.free.nrw.commons.upload.-$$Lambda$UploadClient$-xVSLroq3t059tyyfYuDUQukbVk.apply(Unknown Source:4)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
	... 30 more

2023-06-15 15:17:51,374     [ERROR] [file-logging-thread-1] [UploadWorker] : Upload from stash failed for contribution : divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:53,766     [DEBUG] [file-logging-thread-1] [LocationServiceManager] : on location changed
2023-06-15 15:17:54,458     [DEBUG] [file-logging-thread-1] [ContributionsFragment] : Restarting for Contribution(media=fr.free.nrw.commons.Media@bdd7a42, pageId=1ca15341-d999-460b-9d05-36b1276cb7d3, state=2, transferred=0, decimalCoords=43.727138519166665|15.802839279166667, dateCreatedSource=exif, wikidataPlace=null, chunkInfo=ChunkInfo(uploadResult=UploadResult(result=Success, filekey=1a4xb5spxgt0.qyidk5.3134308.jpg, offset=0, filename=null), indexOfNextChunkToUpload=4, totalChunks=4), depictedItems=[DepictedItem(name=Rubus, description=genus of plants, imageUrl=https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Blackberry_fruits_2008_G1.jpg/70px-Blackberry_fruits_2008_G1.jpg, instanceOfs=[Q16521], commonsCategories=[CategoryItem: 'Rubus'], isSelected=false, id=Q602740)], mimeType=null, localUri=/data/user/0/fr.free.nrw.commons/cache/CommonsContributions/78d3a350-f42a-4ff1-b70f-6cc821bd1bc5.jpg, dataLength=1969272, dateCreated=Thu Jun 15 17:13:44 GMT+02:00 2023, dateCreatedString=2023-06-15, dateModified=Thu Jun 15 15:17:54 GMT+02:00 2023, hasInvalidLocation=0, contentUri=content://media/external/images/media/106584, countryCode=null, imageSHA1=48c6d927c056c08985e20cdc9c5c690cedac4fe8)
2023-06-15 15:17:54,517     [ERROR] [file-logging-thread-1] [UploadWorker$doWork] : Queued Contributions: 1
2023-06-15 15:17:54,532     [DEBUG] [file-logging-thread-1] [UploadWorker] : Upload to stash success for fileName: divlja kupina u cvatu, otok Prvić.jpg
2023-06-15 15:17:54,532     [DEBUG] [file-logging-thread-1] [UploadWorker] : Ensure uniqueness of filename
2023-06-15 15:17:55,134     [DEBUG] [file-logging-thread-1] [PageContentsCreator] : Template: == {{int:filedesc}} ==
{{Information
|description=

|source={{own}}
|author=[[User:Mnalis|Mnalis]]
|date={{According to Exif data|2023-06-15}}
}}
{{Location|43.727138519166665|15.802839279166667}}
== {{int:license-header}} ==
{{self|cc-by-4.0}}

{{Uploaded from Mobile|platform=Android|version=4.1.0~1649d1e2c}}

[[Category:Rubus]]
[[Category:Island of Prvić (near Šibenik)]]
[[Category:Flower, plant]]
2023-06-15 15:17:55,343     [ERROR] [file-logging-thread-1] [UploadClient] : Error in uploading file from stash
org.wikipedia.dataclient.mwapi.MwException: Key "1a4xb5spxgt0.qyidk5.3134308.jpg" not found in stash.

2023-06-15 15:17:55,344     [ERROR] [file-logging-thread-1] [UploadWorker] : java.lang.NullPointerException: The supplied value is null
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn$OnErrorReturnObserver.onError(ObservableOnErrorReturn.java:80)
	at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
	at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
	at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
	at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:44)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableOnErrorReturn.subscribeActual(ObservableOnErrorReturn.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12267)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at fr.free.nrw.commons.upload.worker.UploadWorker.uploadContribution(UploadWorker.kt:300)
	at fr.free.nrw.commons.upload.worker.UploadWorker.access$uploadContribution(UploadWorker.kt:48)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1$2.emit(Emitters.kt:235)
	at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2$invokeSuspend$$inlined$map$1.collect(SafeCollector.common.kt:113)
	at kotlinx.coroutines.flow.FlowKt__CollectKt.collect(Collect.kt:30)
	at kotlinx.coroutines.flow.FlowKt.collect(Unknown Source:1)
	at fr.free.nrw.commons.upload.worker.UploadWorker$doWork$2.invokeSuspend(UploadWorker.kt:218)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	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)
Caused by: java.lang.Exception: uploadstash-file-not-found
	at fr.free.nrw.commons.upload.UploadClient.lambda$uploadFileFromStash$3$UploadClient(UploadClient.java:227)
	at fr.free.nrw.commons.upload.-$$Lambda$UploadClient$-xVSLroq3t059tyyfYuDUQukbVk.apply(Unknown Source:4)
	at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
	... 30 more

2023-06-15 15:17:55,345     [ERROR] [file-logging-thread-1] [UploadWorker] : Upload from stash failed for contribution : divlja kupina u cvatu, otok Prvić.jpg


Update:
Also note when I login on the web and visit https://commons.wikimedia.org/wiki/Special:UploadStash it does show 1/4 of the picture with that ID uploaded at

1a4xbqq0j7as.jycgmo.3134308.jpg (view thumbnail)

Perhaps that narrows it down when the Internet connection needs to be flakey in order for bug to trigger.

@mnalis
Copy link
Contributor Author

mnalis commented Jun 20, 2023

Interestingly:

Also, both of them no longer show image preview in the app (as they did before, see video above), and have a failed status (with retry button not working):

small_SVID_20230620_200441_1.mp4

And here are the logs of those retries shown in video: CommonsAppLogs.0.log

@u7133453
Copy link

Hello @mnalis , I am interested in working on this issue and would love to be assigned to it. Please let me know if there are any additional details or information I should be aware of before starting. I will try to fix it, Thank you :)

@nicolas-raoul
Copy link
Member

@mnalis Do you experience this with the beta too?

@mnalis
Copy link
Contributor Author

mnalis commented Oct 21, 2023

Well @u7133453 I have written down (and provided videos/logs) for everything that I've known. So non extra information from me. Could you reproduce the problem on your device?

@nicolas-raoul I'm still waiting for F-droid to release 4.2.0beta, should happen any day now hopefully (as it seems to build fine). I'll install it when it gets published and try to reproduce all bugs I reported, in order to give feedback 😸

@u7133453
Copy link

@mnalis Thank you for your response, I'm trying to reproduce the problem and try to fix it :)

@RitikaPahwa4444
Copy link
Collaborator

Nicolas, I think issue #5281 is same as this issue. The issue wasn't fixed during GSoC, so unfortunately it still exists even on the latest beta. I'm sorry for not noticing it :')

@nicolas-raoul
Copy link
Member

@RitikaPahwa4444 Thanks for the insight and investigation! I guess we can close this one.

@mnalis Feel free to comment there, especially if you find a way to reproduce the issue.

Thanks all! :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants