Skip to content

[Bug]: crash when attempting to take picture on nearby without Internet #6469

@mnalis

Description

@mnalis

Summary

app crashes when trying to take picture in Nearby when Internet is not present.

Steps to reproduce

  1. open the app
  2. go to Nearby tab
  3. click on the location
  4. disable Internet in phone testing (or, in real life, have flaky internet connection)
  5. click on + and choose camera to take picture
  6. confirm picture with OK
  7. app crashes

Expected behaviour

app would not crash in step 7, instead it would ask me to proceed (i.e. type description etc. - of course it would complain when trying to add categories and depicts which need Internet connection, so I would have to wait for them to work again, but I would not lose work and could continue with uploading picuture later when Internet access become available)

Actual behaviour

app crashes, losing picture

Device name

Samsung Galaxy S23+

Android version

Android 15 (stock Samsung ROM, but degooglified, i.e. no GMS)

Commons app version

6.0.2~a283ffe2b (latest F-droid)

Device logs

USER_COMMENT=trying to add camera picture to object in Nearby with no internet connection.
APP_VERSION_CODE=1058
APP_VERSION_NAME=6.0.2
ANDROID_VERSION=15
PHONE_MODEL=SM-S916B
STACK_TRACE=java.lang.NullPointerException: Attempt to invoke virtual method 'double fr.free.nrw.commons.location.LatLng.getLatitude()' on a null object reference
        at fr.free.nrw.commons.nearby.PlacesLocalDataSource.fetchPlaces(PlacesLocalDataSource.java:60)
        at fr.free.nrw.commons.nearby.PlacesRepository.fetchPlaces(PlacesRepository.java:51)
        at fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter$handleMapScrolled$2.invokeSuspend(NearbyParentFragmentPresenter.kt:573)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
        at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
        at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
        Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@3b9e738, Dispatchers.IO]

IS_SILENT=false
USER_CRASH_DATE=2025-10-09T17:38:21.804+02:00
REPORT_ID=52b63fbe-5a6d-41f6-8217-1118e5007953
USER_EMAIL=

Screen-shots

small_Screen_Recording_20251009_174409_Camera.mp4

Would you like to work on the issue?

None

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions