opensrp / fhircore

FHIR Core / OpenSRP 2 is a Kotlin application for delivering offline-capable, mobile-first healthcare project implementations from local community to national and international scale using FHIR and WHO Smart Guidelines on Android.
https://smartregister.org
Apache License 2.0
50 stars 39 forks source link

initial sync failing to reach 100% #2933

Open BuchiNy opened 6 months ago

BuchiNy commented 6 months ago

Describe the bug initial sync is not reaching 100%, it stops around 28%

To Reproduce Steps to reproduce the behavior:

  1. enter app id,
  2. Enter username and password
  3. log in,
  4. initial sync starts.
  5. sync stops at 28%

Expected behavior Sync should reach 100%

This is the error message which is being shown.

Work [ id=4b77982c-819c-4c11-bd2f-7520159c0ec0, tags={ org.smartregister.fhircore.engine.sync.AppSyncWorker } ] failed because it threw an exception/error
java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: No virtual method getCanonicalFormOrOriginal(Lcom/google/android/fhir/UcumValue;)Lcom/google/android/fhir/UcumValue; in class Lcom/google/android/fhir/UnitConverter; or its super classes (declaration of 'com.google.android.fhir.UnitConverter' appears in /data/app/~~iqVfqUwXNKdAtxcSkK8SJw==/org.smartregister.fhircore.mwcore-kSgrDyCLNlIqoHsO9sx7MQ==/base.apk!classes25.dex)
    at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
    at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
    at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:317)
    at androidx.work.impl.utils.SerialExecutorImpl$Task.run(SerialExecutorImpl.java:96)
    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:923)
Caused by: java.lang.NoSuchMethodError: No virtual method getCanonicalFormOrOriginal(Lcom/google/android/fhir/UcumValue;)Lcom/google/android/fhir/UcumValue; in class Lcom/google/android/fhir/UnitConverter; or its super classes (declaration of 'com.google.android.fhir.UnitConverter' appears in /data/app/~~iqVfqUwXNKdAtxcSkK8SJw==/org.smartregister.fhircore.mwcore-kSgrDyCLNlIqoHsO9sx7MQ==/base.apk!classes25.dex)
    at com.google.android.fhir.index.ResourceIndexer$Companion.quantityIndex(ResourceIndexer.kt:326)
    at com.google.android.fhir.index.ResourceIndexer$Companion.access$quantityIndex(ResourceIndexer.kt:112)
    at com.google.android.fhir.index.ResourceIndexer.extractIndexValues(ResourceIndexer.kt:101)
    at com.google.android.fhir.index.ResourceIndexer.index(ResourceIndexer.kt:75)
    at com.google.android.fhir.db.impl.dao.ResourceDao.insertResource(ResourceDao.kt:214)
    at com.google.android.fhir.db.impl.dao.ResourceDao.insertRemoteResource(ResourceDao.kt:187)
    at com.google.android.fhir.db.impl.dao.ResourceDao.insertAllRemote$suspendImpl(ResourceDao.kt:96)
    at com.google.android.fhir.db.impl.dao.ResourceDao.insertAllRemote(Unknown Source:0)
    at com.google.android.fhir.db.impl.DatabaseImpl$insertRemote$2.invokeSuspend(DatabaseImpl.kt:127)
    at com.google.android.fhir.db.impl.DatabaseImpl$insertRemote$2.invoke(Unknown Source:8)
    at com.google.android.fhir.db.impl.DatabaseImpl$insertRemote$2.invoke(Unknown Source:2)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invokeSuspend(RoomDatabaseExt.kt:56)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invoke(Unknown Source:8)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invoke(Unknown Source:4)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
    at androidx.room.RoomDatabaseKt.withTransaction(RoomDatabaseExt.kt:71)
    at com.google.android.fhir.db.impl.DatabaseImpl.insertRemote(DatabaseImpl.kt:127)
    at com.google.android.fhir.db.impl.DatabaseImpl$insertSyncedResources$2.invokeSuspend(DatabaseImpl.kt:167)
    at com.google.android.fhir.db.impl.DatabaseImpl$insertSyncedResources$2.invoke(Unknown Source:8)
    at com.google.android.fhir.db.impl.DatabaseImpl$insertSyncedResources$2.invoke(Unknown Source:2)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invokeSuspend(RoomDatabaseExt.kt:56)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invoke(Unknown Source:8)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invoke(Unknown Source:4)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
    at androidx.room.RoomDatabaseKt.withTransaction(RoomDatabaseExt.kt:71)
    at com.google.android.fhir.db.impl.DatabaseImpl.insertSyncedResources(DatabaseImpl.kt:167)
    at com.google.android.fhir.impl.FhirEngineImpl$syncDownload$2$1.invokeSuspend(FhirEngineImpl.kt:103)
    at com.google.android.fhir.impl.FhirEngineImpl$syncDownload$2$1.invoke(Unknown Source:8)
    at com.google.android.fhir.impl.FhirEngineImpl$syncDownload$2$1.invoke(Unknown Source:2)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invokeSuspend(RoomDatabaseExt.kt:56)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invoke(Unknown Source:8)
    at androidx.room.RoomDatabaseKt$withTransaction$transactionBlock$1.invoke(Unknown Source:4)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
    at androidx.room.RoomDatabaseKt$startTransactionCoroutine$2$1$1.invokeSuspend(RoomDatabaseExt.kt:97)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:280)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
    at androidx.room.RoomDatabaseKt$startTransactionCoroutine$2$1.run(RoomDatabaseExt.kt:93)
    at androidx.room.TransactionExecutor.execute$lambda$1$lambda$0(TransactionExecutor.kt:36)
    at androidx.room.TransactionExecutor.$r8$lambda$AympDHYBb78s7_N_9gRsXF0sHiw(Unknown Source:0)
    at androidx.room.TransactionExecutor$$ExternalSyntheticLambda0.run(Unknown Source:4)
    ... 3 more

Smartphone (please complete the following information):

BuchiNy commented 6 months ago

@KhumboLihonga

dubdabasoduba commented 6 months ago

@BuchiNy Are you using the FHIR Gateway in your setup?

BuchiNy commented 6 months ago

@dubdabasoduba we are not using the FHIR Gateway