#aws-appsync
#aws-синхронизация приложений
Вопрос:
Мы пытаемся реализовать хранилище данных Appsync для нашего приложения для Android. Время от времени вижу краха. Похоже, это произойдет, когда Datstire попытается выполнить синхронизацию при повторном подключении к Appsync.
implementation 'com.amplifyframework:aws-datastore:1.30.0' implementation 'com.amplifyframework:aws-auth-cognito:1.30.0' implementation 'com.amplifyframework:aws-api:1.30.0'
Похоже, этого не происходит с версией 1.25.0
Error ended observation of mutation outbox: DataStoreException{message=Failed to process PendingMutation{mutatedItem=SerializedModel{id='84ebd29b-b24f-4c36-824e-8a15d8bf56cc', serializedData={receiver=VND-0#nut720, count=1, admin=123, isSeen=false, createdAt=null, senderName=ABCD, sender=VND-0#cl44897, rk=1638468149, id=84ebd29b-b24f-4c36-824e-8a15d8bf56cc, pk=VND-0#cl44897, messageData=78, updatedAt=null}, modelName=Message1}, mutationType=CREATE, mutationId=0756a340-539a-11ec-a7f2-510b5799e6d5, predicate=MatchAllQueryPredicate}, cause=null, recoverySuggestion=Check your internet connection.} at com.amplifyframework.datastore.syncengine.MutationProcessor.drainMutationOutbox(MutationProcessor.java:119) at com.amplifyframework.datastore.syncengine.MutationProcessor.lambda$startDrainingMutationOutbox$1$MutationProcessor(MutationProcessor.java:101) at com.amplifyframework.datastore.syncengine.MutationProcessor$ExternalSyntheticLambda3.apply(Unknown Source:4) at io.reactivex.rxjava3.internal.operators.observable.ObservableFlatMapCompletableCompletable$FlatMapCompletableMainObserver.onNext(ObservableFlatMapCompletableCompletable.java:97) at io.reactivex.rxjava3.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201) at io.reactivex.rxjava3.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255) at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65) at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 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:764) 2021-12-02 23:36:15.352 21267-21401/com.example.sampleapplication W/System.err: io.reactivex.rxjava3.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | DataStoreException{message=Failure during mutation., cause=ApiException{message=OkHttp client request failed., cause=java.net.SocketTimeoutException: timeout, recoverySuggestion=See attached exception for more details.}, recoverySuggestion=Check details.} 2021-12-02 23:36:15.353 21267-21401/com.example.sampleapplication W/System.err: at io.reactivex.rxjava3.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367) 2021-12-02 23:36:15.354 21267-21401/com.example.sampleapplication W/System.err: at io.reactivex.rxjava3.internal.operators.single.SingleCreate$Emitter.onError(SingleCreate.java:82) 2021-12-02 23:36:15.355 21267-21401/com.example.sampleapplication W/System.err: at com.amplifyframework.datastore.storage.sqlite.PersistentModelVersion$ExternalSyntheticLambda0.accept(Unknown Source:4) 2021-12-02 23:36:15.356 21267-21401/com.example.sampleapplication W/System.err: at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$mutation$5(AppSyncClient.java:358) 2021-12-02 23:36:15.356 21267-21401/com.example.sampleapplication W/System.err: at com.amplifyframework.datastore.appsync.AppSyncClient$ExternalSyntheticLambda0.accept(Unknown Source:4) 2021-12-02 23:36:15.356 21267-21401/com.example.sampleapplication W/System.err: at com.amplifyframework.api.aws.AppSyncGraphQLOperation$OkHttpCallback.onFailure(AppSyncGraphQLOperation.java:161) 2021-12-02 23:36:15.357 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:525) 2021-12-02 23:36:15.358 21267-21401/com.example.sampleapplication W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 2021-12-02 23:36:15.358 21267-21401/com.example.sampleapplication W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 2021-12-02 23:36:15.359 21267-21401/com.example.sampleapplication W/System.err: at java.lang.Thread.run(Thread.java:764) 2021-12-02 23:36:15.361 21267-21401/com.example.sampleapplication W/System.err: Caused by: DataStoreException{message=Failure during mutation., cause=ApiException{message=OkHttp client request failed., cause=java.net.SocketTimeoutException: timeout, recoverySuggestion=See attached exception for more details.}, recoverySuggestion=Check details.} 2021-12-02 23:36:15.361 21267-21401/com.example.sampleapplication W/System.err: ... 7 more 2021-12-02 23:36:15.363 21267-21401/com.example.sampleapplication W/System.err: Caused by: ApiException{message=OkHttp client request failed., cause=java.net.SocketTimeoutException: timeout, recoverySuggestion=See attached exception for more details.} 2021-12-02 23:36:15.364 21267-21401/com.example.sampleapplication W/System.err: ... 5 more 2021-12-02 23:36:15.365 21267-21401/com.example.sampleapplication W/System.err: Caused by: java.net.SocketTimeoutException: timeout 2021-12-02 23:36:15.366 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.kt:677) 2021-12-02 23:36:15.366 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.kt:686) 2021-12-02 23:36:15.367 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.kt:143) 2021-12-02 23:36:15.367 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.kt:96) 2021-12-02 23:36:15.368 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:106) 2021-12-02 23:36:15.368 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:79) 2021-12-02 23:36:15.369 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) 2021-12-02 23:36:15.369 21267-21401/com.example.sampleapplication W/System.err: at com.amplifyframework.api.aws.UserAgentInterceptor.intercept(UserAgentInterceptor.java:56) 2021-12-02 23:36:15.369 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) 2021-12-02 23:36:15.370 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34) 2021-12-02 23:36:15.371 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) 2021-12-02 23:36:15.371 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) 2021-12-02 23:36:15.372 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) 2021-12-02 23:36:15.372 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) 2021-12-02 23:36:15.372 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) 2021-12-02 23:36:15.373 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) 2021-12-02 23:36:15.373 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) 2021-12-02 23:36:15.373 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) 2021-12-02 23:36:15.374 21267-21401/com.example.sampleapplication W/System.err: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517) 2021-12-02 23:36:15.374 21267-21401/com.example.sampleapplication