While running an application that uses the DataStore (with cloud synchronization _enabled_), I see the DataStore initialize successfully, and begin to process subscription data:
I/amplify:aws-datastore: Starting processing subscription data buffer.
At this point, my device is connected to the Internet.
When I place the device into Airplane Mode, however, the application _crashes_, with the exception below.
Instead, I would expect the DataStore to operate in an "offline" mode, where-in mutations are queued into the PersistentMutationOutbox, to be dispatched later. When the device regains its connectivity, within a reasonable amount of time (a minute?) the Sync Engine should re-form the subscriptions, and start draining the mutation outbox.
Amplify Android Core, API, DataStore @ 1.0.0.
E/AndroidRuntime: FATAL EXCEPTION: OkHttp https://REDACTED.appsync-realtime-api.us-east-1.amazonaws.com/...
Process: com.amplifyframework.datastore.sample, PID: 27020
io.reactivex.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 | AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:73)
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:3)
at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)
at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)
at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
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)
Caused by: AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)聽
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:3)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)聽
at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)聽
at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)聽
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)聽
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)聽
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)聽
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)聽
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)聽
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)聽
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
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)聽
Caused by: AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:2)
at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)聽
at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)聽
at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)聽
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)聽
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)聽
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)聽
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)聽
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)聽
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)聽
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
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)聽
I save item using DataStore when my device is offline or turn off internet after save item, app crash. I follow https://docs.amplify.aws/lib/datastore/data-access/q/platform/android
TargetSdk : 29
Kotlin version: 1.3.72
Gradle version: 6.5
Android Gradle plugin version: 4.0.0
Amplify Android Core, API, DataStore @ 1.0.0.
amplify:aws-datastore: An error occurred on the remote Comment subscription for model ON_CREATE.
AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription failed., cause=javax.net.ssl.SSLException: Read error: ssl=0x7abee5c988: I/O error during system call, Software caused connection abort, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
Caused by: AmplifyException {message=Subscription failed., cause=javax.net.ssl.SSLException: Read error: ssl=0x7abee5c988: I/O error during system call, Software caused connection abort, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)聽
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)聽
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)聽
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)聽
at java.lang.Thread.run(Thread.java:784)聽
Caused by: javax.net.ssl.SSLException: Read error: ssl=0x7abee5c988: 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:399)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:546)
at okio.InputStreamSource.read(JvmOkio.kt:90)
at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:129)
at okio.RealBufferedSource.request(RealBufferedSource.kt:207)
at okio.RealBufferedSource.require(RealBufferedSource.kt:201)
at okio.RealBufferedSource.readByte(RealBufferedSource.kt:210)
at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.kt:119)
at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.kt:102)
at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.kt:293)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:195)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)聽
at java.lang.Thread.run(Thread.java:784)聽
I/MyAmplifyApp: Saved a blog.
2020-06-05 10:55:31.626 31475-31536/jp.co.yakult.healthcareapp W/System.err: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
2020-06-05 10:55:31.626 31475-31536/jp.co.yakult.healthcareapp W/System.err: SLF4J: Defaulting to no-operation (NOP) logger implementation
2020-06-05 10:55:31.626 31475-31536/jp.co.yakult.healthcareapp W/System.err: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2020-06-05 10:55:31.644 31475-32698/jp.co.yakult.healthcareapp I/amplify:aws-datastore: Successfully enqueued PendingMutation{mutatedItem=Blog {id=a4909218-3a47-46f8-9b2e-94606d670e9ename=0 Test Blog}}, classOfMutatedItem=class com.amplifyframework.datastore.generated.model.Blog, mutationType=CREATE, mutationId=66d4840a-a6e0-11ea-ba14-010d0a606347, predicate=null}
2020-06-05 10:55:31.775 31475-32699/jp.co.yakult.healthcareapp D/AWSMobileClient: Inspecting user state details
2020-06-05 10:55:31.778 31475-32699/jp.co.yakult.healthcareapp D/AWSMobileClient: waitForSignIn: userState:GUEST
2020-06-05 10:55:32.721 31475-32699/jp.co.yakult.healthcareapp I/amplify:aws-datastore: Mutation outbox has pending mutation for a4909218-3a47-46f8-9b2e-94606d670e9e, refusing to merge.
2020-06-05 10:55:32.734 31475-32698/jp.co.yakult.healthcareapp I/amplify:aws-datastore: Successfully removed from mutations outboxPendingMutation{mutatedItem=Blog {id=a4909218-3a47-46f8-9b2e-94606d670e9ename=0 Test Blog}}, classOfMutatedItem=class com.amplifyframework.datastore.generated.model.Blog, mutationType=CREATE, mutationId=66d4840a-a6e0-11ea-ba14-010d0a606347, predicate=null}
2020-06-05 10:55:37.394 31475-31475/jp.co.yakult.healthcareapp V/InputMethodManager: Reporting focus gain, without startInput
2020-06-05 10:56:44.636 31475-31475/jp.co.yakult.healthcareapp V/InputMethodManager: Reporting focus gain, without startInput
2020-06-05 10:56:44.797 31475-31567/jp.co.yakult.healthcareapp W/amplify:aws-datastore: An error occurred on the remote Comment subscription for model ON_CREATE.
AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription failed., cause=javax.net.ssl.SSLException: Read error: ssl=0x7abee5c988: I/O error during system call, Software caused connection abort, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
Caused by: AmplifyException {message=Subscription failed., cause=javax.net.ssl.SSLException: Read error: ssl=0x7abee5c988: I/O error during system call, Software caused connection abort, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)聽
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)聽
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)聽
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)聽
at java.lang.Thread.run(Thread.java:784)聽
Caused by: javax.net.ssl.SSLException: Read error: ssl=0x7abee5c988: 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:399)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:546)
at okio.InputStreamSource.read(JvmOkio.kt:90)
at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:129)
at okio.RealBufferedSource.request(RealBufferedSource.kt:207)
at okio.RealBufferedSource.require(RealBufferedSource.kt:201)
at okio.RealBufferedSource.readByte(RealBufferedSource.kt:210)
at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.kt:119)
at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.kt:102)
at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.kt:293)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:195)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)聽
at java.lang.Thread.run(Thread.java:784)聽
2020-06-05 10:56:45.215 31475-31475/jp.co.yakult.healthcareapp V/AudioManager: playSoundEffect effectType: 0
2020-06-05 10:56:45.216 31475-31475/jp.co.yakult.healthcareapp V/AudioManager: querySoundEffectsEnabled...
2020-06-05 10:56:45.226 31475-421/jp.co.yakult.healthcareapp I/MyAmplifyApp: Saved a blog.
2020-06-05 10:56:45.240 31475-421/jp.co.yakult.healthcareapp I/amplify:aws-datastore: Successfully enqueued PendingMutation{mutatedItem=Blog {id=2ca5243c-3376-4cf2-b53b-9c026aa96f47name=1 Test Blog}}, classOfMutatedItem=class com.amplifyframework.datastore.generated.model.Blog, mutationType=CREATE, mutationId=92b238bb-a6e0-11ea-ba14-3de77bb5227e, predicate=null}
2020-06-05 10:56:45.362 31475-429/jp.co.yakult.healthcareapp D/AWSMobileClient: Inspecting user state details
2020-06-05 10:56:45.366 31475-429/jp.co.yakult.healthcareapp D/AWSMobileClient: waitForSignIn: userState:GUEST
2020-06-05 10:56:45.516 31475-429/jp.co.yakult.healthcareapp W/amplify:aws-datastore: Failed to publish a local change = PendingMutation{mutatedItem=Blog {id=2ca5243c-3376-4cf2-b53b-9c026aa96f47name=1 Test Blog}}, classOfMutatedItem=class com.amplifyframework.datastore.generated.model.Blog, mutationType=CREATE, mutationId=92b238bb-a6e0-11ea-ba14-3de77bb5227e, predicate=null}
2020-06-05 10:56:45.518 31475-31536/jp.co.yakult.healthcareapp W/amplify:aws-datastore: Error ended observation of mutation outbox:
2020-06-05 10:56:54.803 31475-31567/jp.co.yakult.healthcareapp W/System.err: io.reactivex.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 | AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:73)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:3)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)
2020-06-05 10:56:54.804 31475-31567/jp.co.yakult.healthcareapp W/System.err: at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)
2020-06-05 10:56:54.805 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
2020-06-05 10:56:54.806 31475-31567/jp.co.yakult.healthcareapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
2020-06-05 10:56:54.807 31475-31567/jp.co.yakult.healthcareapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2020-06-05 10:56:54.807 31475-31567/jp.co.yakult.healthcareapp W/System.err: at java.lang.Thread.run(Thread.java:784)
2020-06-05 10:56:54.808 31475-31567/jp.co.yakult.healthcareapp W/System.err: Caused by: AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
2020-06-05 10:56:54.808 31475-31567/jp.co.yakult.healthcareapp W/System.err: ... 24 more
2020-06-05 10:56:54.809 31475-31567/jp.co.yakult.healthcareapp W/System.err: Caused by: AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}
2020-06-05 10:56:54.809 31475-31567/jp.co.yakult.healthcareapp W/System.err: at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:2)
2020-06-05 10:56:54.809 31475-31567/jp.co.yakult.healthcareapp W/System.err: ... 21 more
2020-06-05 10:56:54.815 31475-31567/jp.co.yakult.healthcareapp E/AndroidRuntime: FATAL EXCEPTION: OkHttp https://fkgqfxh6tjh5tegzkz7w6w2k7m.appsync-realtime-api.ap-northeast-1.amazonaws.com/...
Process: jp.co.yakult.healthcareapp, PID: 31475
io.reactivex.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 | AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:73)
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:3)
at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)
at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)
at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
Caused by: AmplifyException {message=Error during subscription., cause=AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}, recoverySuggestion=Evaluate details.}
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)聽
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:3)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)聽
at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)聽
at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)聽
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)聽
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)聽
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)聽
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)聽
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)聽
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)聽
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)聽
at java.lang.Thread.run(Thread.java:784)聽
Caused by: AmplifyException {message=Subscription completion not acknowledged., cause=null, recoverySuggestion=Sorry, we don't have a suggested fix for this error yet.}
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.awaitSubscriptionCompleted(SubscriptionEndpoint.java:2)
at com.amplifyframework.api.aws.SubscriptionEndpoint.releaseSubscription(SubscriptionEndpoint.java:26)聽
at com.amplifyframework.api.aws.SubscriptionOperation.cancel(SubscriptionOperation.java:3)聽
at com.amplifyframework.datastore.AmplifyDisposables$1.dispose(AmplifyDisposables.java:3)聽
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.dispose(ObservableCreate.java:121)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:86)聽
at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:72)聽
at com.amplifyframework.datastore.syncengine.-$$Lambda$e4FRR6iHUV0ToSpRUkOM1VPObso.accept(Unknown Source:4)聽
at com.amplifyframework.datastore.appsync.AppSyncClient.lambda$subscription$3(AppSyncClient.java:1)聽
at com.amplifyframework.datastore.appsync.-$$Lambda$AppSyncClient$8gXTT9bgLZGP51blif6hkh7EwIc.accept(Unknown Source:4)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$Subscription.dispatchError(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.notifyError(SubscriptionEndpoint.java:2)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint.access$200(SubscriptionEndpoint.java:1)聽
at com.amplifyframework.api.aws.SubscriptionEndpoint$1.onFailure(SubscriptionEndpoint.java:1)聽
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.kt:592)聽
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:197)聽
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)聽
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)聽
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)聽
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)聽
at java.lang.Thread.run(Thread.java:784)聽
2020-06-05 10:56:54.847 31475-31475/jp.co.yakult.healthcareapp D/ZrHung.AppEyeUiProbe: stop checker.
2020-06-05 10:56:54.926 31475-31567/jp.co.yakult.healthcareapp I/Process: Sending signal. PID: 31475 SIG: 9
Any progress on this issue?
Apologies for the delay on this. I am actively focused on a fix for this issue. Will provide an update ASAP.
A new version (1.1.0) has just been released which contains fixes for this issue. If you encounter this error, feel free to re-open this issue.
Hi @rjuliano, as @jamesonwilliams has mentioned in his opening post, I'm facing the same issue in version 1.6.0.
@Amplifiyer is also running into this issue in #1022 (closed as duplicate of current #541):
When a flutter datastore app loses network connection, it crashes with the errors in the attached logs
network.on.-.off.txtAt the time the network was turned off, the mutation queue was empty.
Starting the app in a no network state causes these errors and bringing network back doesn't > start the subscriptions.
network.off.txt
Most helpful comment
Apologies for the delay on this. I am actively focused on a fix for this issue. Will provide an update ASAP.