Open jamontesg opened 1 year ago
@jamontesg Would you give more details about your current experience and actual issues that you are facing?
Hi, working my android app with a sat internet connection. upload and download files to S3 need a lot of retry for be successful. this connection has average latency of 594 to 624 milliseconds. Also Autehnticator ( cognito ) need retrys to works. but other apps like web browsing whatsapp and skype work relatively well whit this connection.
I think alter this timeout parameters could be improbe app . Kind Regards
Do you experience API call failure? if so would you list the APIs and errors you get.
Now I don't have logs, but next week I'll be back in the satellite connection area, and I'll take them
Thanks @jamontesg. Would be helpful to also inspect network traffic. You can use Flutter DevTools network view
or any other tools of your preference to inspect network traffic.
We can confirm this issue as well using android emulator and setting gsm with a poor connection. On most tries, if there is more than a handful of models and entries, it timeouts and is unable to continue.
I will attach a full log later, I want to isolate the error first, but here is the relevant extract:
[ +188 ms] E/amplify:aws-datastore( 7161): Failure encountered while attempting to start API sync.
[ ] E/amplify:aws-datastore( 7161): DataStoreException{message=DataStore subscriptionProcessor failed to start., cause=DataStoreException{message=Timed out waiting for subscription processor to start., cause=null, recoverySuggestion=Retry}, recoverySuggestion=Check your internet.}
[ ] E/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.Orchestrator.lambda$startApiSync$4$com-amplifyframework-datastore-syncengine-Orchestrator(Orchestrator.java:320)
[ ] E/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.Orchestrator$$ExternalSyntheticLambda8.subscribe(Unknown Source:2)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletableCreate.subscribeActual(CompletableCreate.java:40)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(CompletableSubscribeOn.java:64)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:614)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
[ ] E/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
[ ] E/amplify:aws-datastore( 7161): at java.util.concurrent.FutureTask.run(FutureTask.java:264)
[ ] E/amplify:aws-datastore( 7161): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
[ ] E/amplify:aws-datastore( 7161): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[ ] E/amplify:aws-datastore( 7161): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
[ ] E/amplify:aws-datastore( 7161): at java.lang.Thread.run(Thread.java:1012)
[ ] E/amplify:aws-datastore( 7161): Caused by: DataStoreException{message=Timed out waiting for subscription processor to start., cause=null, recoverySuggestion=Retry}
[ ] E/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.SubscriptionProcessor.startSubscriptions(SubscriptionProcessor.java:163)
[ ] E/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.Orchestrator.lambda$startApiSync$4$com-amplifyframework-datastore-syncengine-Orchestrator(Orchestrator.java:318)
[ ] E/amplify:aws-datastore( 7161): ... 18 more
[ ] W/amplify:aws-datastore( 7161): API sync failed - transitioning to LOCAL_ONLY.
[ ] W/amplify:aws-datastore( 7161): DataStoreException{message=DataStore subscriptionProcessor failed to start., cause=DataStoreException{message=Timed out waiting for subscription processor to start., cause=null, recoverySuggestion=Retry}, recoverySuggestion=Check your internet.}
[ ] W/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.Orchestrator.lambda$startApiSync$4$com-amplifyframework-datastore-syncengine-Orchestrator(Orchestrator.java:320)
[ ] W/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.Orchestrator$$ExternalSyntheticLambda8.subscribe(Unknown Source:2)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletableCreate.subscribeActual(CompletableCreate.java:40)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2850)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(CompletableSubscribeOn.java:64)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:614)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
[ ] W/amplify:aws-datastore( 7161): at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
[ ] W/amplify:aws-datastore( 7161): at java.util.concurrent.FutureTask.run(FutureTask.java:264)
[ ] W/amplify:aws-datastore( 7161): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
[ ] W/amplify:aws-datastore( 7161): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[ ] W/amplify:aws-datastore( 7161): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
[ ] W/amplify:aws-datastore( 7161): at java.lang.Thread.run(Thread.java:1012)
[ ] W/amplify:aws-datastore( 7161): Caused by: DataStoreException{message=Timed out waiting for subscription processor to start., cause=null, recoverySuggestion=Retry}
[ ] W/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.SubscriptionProcessor.startSubscriptions(SubscriptionProcessor.java:163)
[ ] W/amplify:aws-datastore( 7161): at com.amplifyframework.datastore.syncengine.Orchestrator.lambda$startApiSync$4$com-amplifyframework-datastore-syncengine-Orchestrator(Orchestrator.java:318)
[ ] W/amplify:aws-datastore( 7161): ... 18 more
[ ] I/amplify:aws-datastore( 7161): Orchestrator transitioning from SYNC_VIA_API to LOCAL_ONLY
[ ] I/amplify:aws-datastore( 7161): Setting currentState to LOCAL_ONLY
[ +1 ms] I/amplify:aws-datastore( 7161): Stopping subscription processor.
Here are two logs. Both are done with a primed application ( i.e. was previously logged in and reached datastore ready state ).
Network settings full / full: success.txt Network setting GSM / poor: failure.txt
any advance about this issue?
@dgagnon - It sounds like you are looking to override the timeout in DataStore. This feature request is for the Amplify Storage category. If you are looking to override to timeout in DataStore do you mind opening a new request?
@jamontesg - This is not something we are actively working on. We are tracking it as a feature request though.
Need this option for low latency and poor connections like SAT internet Kind Regards