Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SubscriptionStatusObserver is not working #393

Closed
vishaldroisys opened this issue Jun 10, 2020 · 30 comments
Closed

SubscriptionStatusObserver is not working #393

vishaldroisys opened this issue Jun 10, 2020 · 30 comments
Assignees
Labels
question A question about how to use an existing feature requesting info Further information is needed before this is actionable

Comments

@vishaldroisys
Copy link

Describe the bug
I implemented SubscriptionStatusObserver with Subscribe method of AppsyncClient.
this is working SubscriptionStatusObserver state as "Connecting" and "Connected" State when app launch. and after that we disconnected the internect but SubscriptionStatusObserver is not returning state as "disconnected"

To Reproduce
Steps to reproduce the behavior:

  1. Started App and initialize subscription through below code
    let subscription = OnInsertUpdateAccountSubscription() do { subscriptionUpdateWatcher = try appSyncClient?.subscribe(subscription: subscription, queue: .main, statusChangeHandler: { (SubscriptionStatusObserver) in print(SubscriptionStatusObserver) }, resultHandler: { (result, transaction, error) in }) } catch { print("Error starting subscription: \(error.localizedDescription)") }

  2. first Connecting... and then Connected the subscription

  3. Stop Internet connection

  4. SubscriptionStatusObserver as Disconnected not called.

  5. Wait for 10-15 min

  6. Started internet connection.

  7. and i seen xcode console, following logs are display:

2020-06-10 17:55:20.277080+0530 AppSync_POC[10181:315548] WebsocketDidConnect 2020-06-10 17:55:20.277203+0530 AppSync_POC[10181:315548] WebsocketDidConnect, sending init message... 2020-06-10 17:55:20.277347+0530 AppSync_POC[10181:315548] Validating connection 2020-06-10 17:55:20.277444+0530 AppSync_POC[10181:315826] Message type does not need signing - connectionInit("connection_init") 2020-06-10 17:55:20.277597+0530 AppSync_POC[10181:315826] Websocket write - {"type":"connection_init"} 2020-06-10 17:55:20.278622+0530 AppSync_POC[10181:311394] Realtime connection is stale, disconnected. 2020-06-10 17:55:20.282033+0530 AppSync_POC[10181:311394] The operation couldn’t be completed. (AppSyncRealTimeClient.ConnectionProviderError error 3.) error(AWSAppSync.AWSAppSyncSubscriptionError.other(AppSyncRealTimeClient.ConnectionProviderError.connection))

Expected behavior
It should display "Connect" as Observer state. and we need handler to handle the each and every event

Environment(please complete the following information):

  • AppSync SDK Version: 3.1.2
  • Dependency Manager: Cocoapods
  • Swift Version : 4.2

Device Information (please complete the following information):

  • Device: iPhone6, Simulator
  • iOS Version: 11+

Thanks in advanced.

@wooj2
Copy link
Contributor

wooj2 commented Jun 16, 2020

Hi @vishaldroisys
Sorry for the delay, and thank for reaching out.

I am trying to create a test project and replicate what you are seeing.

  1. Can you please share a sample schema that demonstrates this problem?
  2. In step 2 when you say "Stop the internet connection" what do you mean by this? If you are running on your laptop, are you turning off your wifi/disconnecting a cable from your computer? Or are you turning off your router, so you can no longer access the internet? Can you please explain what you mean by this?
  3. Also, what do you mean by "Started internet connection"?

Thank you!

@wooj2 wooj2 added requesting info Further information is needed before this is actionable question A question about how to use an existing feature labels Jun 16, 2020
@vishaldroisys
Copy link
Author

vishaldroisys commented Jun 17, 2020

Hi @wooj2

Thanks for the reply.

User will start or stop their internet through enable or disable their WIFI connection. in other terms user will go from online to offline or offline to online.

Thanks.

@wooj2
Copy link
Contributor

wooj2 commented Jun 17, 2020

Hi @vishaldroisys ,

Thank you for your patience. I am not super familiar with this codebase, but I was able to reproduce this is issue you are seeing. When executing code, and turning off wifi, the statusChangeHandler is not called with a .disconnected status.

In looking how the code works,
On a disconnect:

RealTimeConnectionProvider+Webscoket.swift :: websocketDidDisconnect calls updateCallback() with `.error(ConnectionProviderError.connection)`
  ...
  calls --> AppSyncSubscriptionConnection::addlistener() (closure which gets interpreted as .error)
     calls --> AppSyncSubscriptionConnection::handleError()

And attempts to reconnect the websocket connection rather than just returning a disconnected state. If you wait long enough, the code no longer retries to connect the websocket and the statusChangeHandler returns back an error state.

It seems that the code should be updated so that the statusChangeHandler is executed with a .disconnected state while the connection attempts to be re-established. Is this correct?

@wooj2 wooj2 added bug Something isn't working and removed question A question about how to use an existing feature labels Jun 17, 2020
@vishaldroisys
Copy link
Author

Hi @wooj2

Yes it is.

It will resolved in next version of Appsync framework right??

Thanks.

@wooj2
Copy link
Contributor

wooj2 commented Jun 19, 2020

@vishaldroisys
Thanks for reporting this bug and confirming the behavior. I’ll discuss this internally to see what we could to to resolve the issue.

If this is a new feature in your project (or you can afford to migrate), we highly recommend you adopt Amplify Datastore as it's responsibility is to handle the complex task of synchronization to the cloud, as well as providing a powerful interface to query & mutate your data.

If you'd like to learn more about data store, you check out this video:
https://www.youtube.com/watch?v=KcYl6_We0EU

And visit our official documentation here:
https://docs.amplify.aws/lib/datastore/getting-started/q/platform/ios

@vishaldroisys
Copy link
Author

Hello,

please try to understand. we don't want to use Amplify Framework right now.

please tell us. Is this feasible/possible through Appsyncclient framework or not.

Thanks.

@wooj2 wooj2 self-assigned this Jun 23, 2020
@wooj2
Copy link
Contributor

wooj2 commented Jun 23, 2020

Hi @vishaldroisys,

I looked into the code and I believe that statusChangeHandler is used to convey information about the subscription rather than the websocket connection. For this reason, we should only expect a .disconnected state to appear on the statusChangeHandler when you attempt call .cancel() on the subscriptionUpdateWatcher. Issuing a cancel() sends an unsubscribe message over the websocket connection. As a result of sending this unsubscribe, we should expect to receive an .unsubscriptionAck.

The behavior of unsubscribe() is documented here:
https://docs.aws.amazon.com/appsync/latest/devguide/real-time-websocket-client.html#subscription-unregistration-message

To see this in code, if we look to see when .disconnected is sent, it is when we receive and .unsubscriptionAck:
https://github.com/aws-amplify/aws-appsync-realtime-client-ios/blob/8b7a789042b15d851233840a086adae18fb4af9c/AppSyncRealTimeClient/Connection/AppSyncConnection/AppSyncSubscriptionConnection+DataHandler.swift#L33
Similarly, on line 30 of the same file, we send a .connected status when we receive a .subscriptionAck

Despite the above description being the expected behavior, if you call .cancel() on the watcher, you will (unfortunately) not get a .disconnected state due to one or more bugs in the code. I took a brief look into why .disconnected was not getting sent, and I think the following two items are causing the issue:

  • In aws-mobile-appsync-sdk-ios, it seems like we are improperly nil-ing out statusChangeHandler
  • In aws-appsync-realtime-client-ios, it seems that we are immediately removing the listener in the unsubscribe function()

Taking a step back, if you are interested in getting status on the state of your network status, you could use connectionStateChangeHandler as part of the AWSAppSyncClientConfiguration object. For example, when you instantiate AWSAppSyncClientConfiguration, it could look like this:

let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig,
                                                      cacheConfiguration: cacheConfiguration,
                                                      connectionStateChangeHandler: self)

Your class must conform to the protocol:

ConnectionStateChangeHandler

Finally, you will need to implement the following function to get updates on the network status:

func stateChanged(networkState: ClientNetworkAccessState) {
    print("Status - State changed to: \(networkState)")
}

Note that this solution does not hit support cases where your network connection is up, but the connection is unstable for one reason or another. For example, if you are connected to wifi, but your DNS is not working, I would not expect that stateChanged would get executed.

Hope this helps, and best of luck.

@wooj2 wooj2 removed the bug Something isn't working label Jun 23, 2020
@vishaldroisys
Copy link
Author

@wooj2 I tried ConnectionStateChangeHandler but that will return when user goes offline.

but that will not call when user come back from offline to online.

Thanks.

@wooj2
Copy link
Contributor

wooj2 commented Jun 24, 2020

Hi @vishaldroisys
I am unable to reproduce that behavior. The following are some code snippets, of the stateChanged callback and the subscribe call.

stateChanged callback:

func stateChanged(networkState: ClientNetworkAccessState) {
    print("I: stateChanged/networkState: \(networkState)")
}

subscribe() call

subscriptionUpdateWatcher  = try appSyncClient?.subscribe(
    subscription: subscription,
    queue: .main,
    statusChangeHandler: { (statusObserver) in
        print("I: statusChangeHandler/statusObserver: \(statusObserver)")
}, resultHandler: { (result, transaction, error) in
    if let result = result {
        print("Received new data: \(result)")

    }
})

Console Output:

//App is started (with wifi assumed to be on)
I: statusChangeHandler/statusObserver: connecting
I: statusChangeHandler/statusObserver: connected

//turn off wifi
I: stateChanged/networkState: Offline

//turning on wifi:
I: stateChanged/networkState: Online
I: statusChangeHandler/statusObserver: connected

Are you seeing something different?

@vishaldroisys
Copy link
Author

Hello @wooj2

iOS code
` let cacheConfiguration = try AWSAppSyncCacheConfiguration()
// AppSync configuration & client initialization
let appSyncServiceConfig = try AWSAppSyncServiceConfig()
let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig, cacheConfiguration: cacheConfiguration, connectionStateChangeHandler: self)
appSyncClient = try AWSAppSyncClient(appSyncConfig: appSyncConfig)
appSyncClient?.apolloClient?.cacheKeyForObject = { $0["id"] }

        subscribeForUpdateData()

`

` func subscribeForUpdateData() {
let subscription = OnInsertUpdateAccountSubscription()
do {
subscriptionUpdateWatcher = try appSyncClient?.subscribe(subscription: subscription, queue: .main, statusChangeHandler: { (SubscriptionStatusObserver) in
switch SubscriptionStatusObserver {
case .disconnected:
print("Disconnected")
case .connecting:
print("Connecting")
case .connected:
print("Connected")
case .error(_):
print("Error")
}
}, resultHandler: { (result, transaction, error) in
if let result = result {
let newAccount = result.data?.onInsertUpdateAccount
let AccountID = newAccount?.id
print("Received new data")
do {
if var wines = try dbQueue.read { db in
try A360SQLAccount.fetchAll(db,sql: "SELECT * FROM a360SQLAccount WHERE id = ?", arguments: [AccountID]).first
// try A360SQLAccount.fetchAll(db, sql: "SELECT * FROM a360SQLAccount")
}{
wines.Contacts = newAccount?.contacts
wines.SocialMediaLinks = newAccount?.socialMediaLinks
wines.ScheduleDays = newAccount?.scheduleDays
try! dbQueue.inDatabase { db in
try wines.save(db)
}
}
}catch{

                }
            }
        })
    } catch {
        print("Error starting subscription: \(error.localizedDescription)")
    }
}

`

My Console
connecting
Connecting
Connecting
2020-06-25 17:59:48.704262+0530 AppSync_POC[17510:1079149] Header - Optional("{"x-amz-date":"20200625T122948Z","x-api-key":"da2-6di7o4gld5d5tiyhya7jlbnle4","host":"w2r274fpk5eivdddnjr3ontgf4.appsync-api.us-east-1.amazonaws.com"}")
2020-06-25 17:59:48.766215+0530 AppSync_POC[17510:1079146] Connecting to url ...
2020-06-25 17:59:51.083494+0530 AppSync_POC[17510:1079148] WebsocketDidConnect
2020-06-25 17:59:51.083651+0530 AppSync_POC[17510:1079148] WebsocketDidConnect, sending init message...
2020-06-25 17:59:51.083811+0530 AppSync_POC[17510:1079148] Validating connection
2020-06-25 17:59:51.093064+0530 AppSync_POC[17510:1079197] Message type does not need signing - connectionInit("connection_init")
2020-06-25 17:59:51.093656+0530 AppSync_POC[17510:1079197] Websocket write - {"type":"connection_init"}
2020-06-25 17:59:52.026557+0530 AppSync_POC[17510:1079197] WebsocketDidReceiveMessage - {"type":"connection_ack","payload":{"connectionTimeoutMs":300000}}
2020-06-25 17:59:52.038623+0530 AppSync_POC[17510:1079197] WebsocketDidReceiveMessage - {"type":"ka"}
2020-06-25 17:59:52.038688+0530 AppSync_POC[17510:1079148] Start subscription

2020-06-25 17:59:52.038993+0530 AppSync_POC[17510:1079148] Start subscription
2020-06-25 17:59:52.040152+0530 AppSync_POC[17510:1079197] Websocket write - {"id":"122A2C6B-9E54-48FB-8171-18CAF220D95B","payload":{"data":"{"query":"subscription onInsertUpdateAccount {\n onInsertUpdateAccount {\n __typename\n id\n AccountName\n Address1\n City\n State\n AMName\n DMName\n RepName\n Latitude\n Longitude\n DistributorId\n DistributorName\n DistributorAccountId\n ClientAccountId\n Channel\n LicenceType\n Banner\n SalesType\n SocialMediaLinks\n ScheduleDays\n Contacts\n }\n}"}","extensions":{"authorization":{"x-amz-date":"20200625T122952Z","x-api-key":"da2-6di7o4gld5d5tiyhya7jlbnle4","host":"w2r274fpk5eivdddnjr3ontgf4.appsync-api.us-east-1.amazonaws.com"}}},"type":"start"}
2020-06-25 17:59:52.041510+0530 AppSync_POC[17510:1079197] Websocket write - {"id":"CD56D0BE-D9D8-487F-A10A-BA95D2C79CD5","payload":{"data":"{"query":"subscription onAddUpdateAccountNote {\n onAddUpdateAccountNote {\n __typename\n Id\n UserId\n UserName\n ClientAccountId\n AccountId\n Notes\n DocumentId\n IsActive\n CreatedBy\n CreatedDate\n }\n}"}","extensions":{"authorization":{"x-amz-date":"20200625T122952Z","x-api-key":"da2-6di7o4gld5d5tiyhya7jlbnle4","host":"w2r274fpk5eivdddnjr3ontgf4.appsync-api.us-east-1.amazonaws.com"}}},"type":"start"}
Connected
connected
Connected
Status - State changed to: Offline
Disconnected

******* After last log we are connecting wifi but unable to get event "Connected" event

@wooj2
Copy link
Contributor

wooj2 commented Jun 25, 2020

In looking at your code, it looks like you are correctly adding "connectionStateChangeHandler: self", but may have forgot to implement the required function stateChanged(networkState:. If you add the following function, you can receive updates on your connection:

func stateChanged(networkState: ClientNetworkAccessState) {
    print("I: stateChanged/networkState: \(networkState)")
}

Also note that in your code you have added some cases for the statusChangeHandler/SubscriptionStatusObserver. As described above, this refers to the lifecycle events of the subscription (rather than the status of the websocket), and does not correspond to your wifi connectivity. Please see the description here:
#393 (comment)

@vishaldroisys
Copy link
Author

@wooj2
if i added "connectionStateChangeHandler: self" then i have to mandatory implement following method into my code.

func stateChanged(networkState: ClientNetworkAccessState) {
print("I: stateChanged/networkState: (networkState)")
}

please see console log. second last row in my console log:
Status - State changed to: Offline

FYI: i have implemented method that you suggest.

@wooj2
Copy link
Contributor

wooj2 commented Jun 26, 2020

Hmm sounds like you've implemented the stateChanged() function, but are unable to get an Online status when reconnected to wifi? Is this correct?

If this is the case, and I am understanding you correctly then, I am unable to reproduce this, and unable to make forward progress at this point. In all of my testing, when my device goes from having wifi turned off to wifi being turned on, the stateChanged() function always prints out:

I: stateChanged/networkState: Online

Is there anything unique about your wifi network, or anything unique to your configuration?

@wooj2 wooj2 added the question A question about how to use an existing feature label Jun 26, 2020
@vishaldroisys
Copy link
Author

@wooj2

Yes you are right.

Let me repeat my use case.

I started my app with wifi connection. that time "State changed to: Online" is not called. then after i disconnect my wifi so in console there is printed "State changed to: Offline" then after i connected my wifi. there is not printed/called any event.

Thanks

@wooj2
Copy link
Contributor

wooj2 commented Jun 26, 2020

I started my app with wifi connection. that time "State changed to: Online" is not called."

Yes, this is expected

then after i disconnect my wifi so in console there is printed "State changed to: Offline"

Yes, this is expected

then after i connected my wifi. there is not printed/called any event.

This is not expected. I am unable to reproduce this.

@vishaldroisys
Copy link
Author

SHould I share Code file??

@wooj2
Copy link
Contributor

wooj2 commented Jun 26, 2020

Hi @vishaldroisys,

You can share your code, and I'd be happy to take a look, but I'm convinced that the code that you and I have are equivalent based on your logs and the code snippets that we've shared back and forth. At this point, I'm convinced that there is something specific to the device, network, or configuration that is out of our control.

I'm not sure if this helps but, to be even more detailed about the steps I'm taking in this post:
#393 (comment)

I have an iPhone 7 with iOS 13.3, without a cell network.

// App is started (with wifi assumed to be on)
I: statusChangeHandler/statusObserver: connecting
I: statusChangeHandler/statusObserver: connected

// Swipe up from the bottom of the screen to show the control to turn wifi on/off
// (note, if you are on a device with faceID, this is done by swiping down from the upper right hand corner)
// Select the icon to turn wifi off
// Tap the screen to allow the app to go back into the foreground
// The output I see is:
I: stateChanged/networkState: Offline

// Wait anywhere between 1-5 seconds
// Swipe up from the bottom of the screen to show the control to turn wifi on/off
// Select the icon to turn wifi on
// Tap the screen to allow the app to go back into the foreground
// Wait anywhere between 1-5 seconds
// The output I see is:
I: stateChanged/networkState: Online
I: statusChangeHandler/statusObserver: connected

In taking a step back, maybe you can take a look at the code that is emitting the reachability status, and try debugging this on your side.

Reachability notifications are sent via the NotificationCenter, with a name of .appSyncReachabilityChangedor Notification.Name("AppSyncNetworkAvailabilityChangedNotification"), located in this class called NetworkReachabilityNotifier:

NotificationCenter.default.post(name: .appSyncReachabilityChanged, object: info)

These notifications are received here:

@objc func appsyncReachabilityChanged(note: Notification) {

Is there anything in the code links above that you can see that might prevent you from getting a .Online state?

Hope this helps, and best of luck.

@vishaldroisys
Copy link
Author

Hi @wooj2

Let me share my code. I have Attached my AppDelegate and My schema file.

https://drive.google.com/file/d/1T9epWgvdtZhbO9PhhMd7BUdK2lRt6yjm/view?usp=sharing

Thanks.

@wooj2
Copy link
Contributor

wooj2 commented Jul 1, 2020

Hi @vishaldroisys

  1. Have you had a chance to debug this issue looking at the code references above?
    SubscriptionStatusObserver is not working #393 (comment)

  2. If you are going to post your code, is it possible to:
    a. First remove any sensitive information
    b. Copy and paste your code sample into github

@vishaldroisys
Copy link
Author

Hi @wooj2

Have you tested my code??

Thanks

@vishaldroisys
Copy link
Author

vishaldroisys commented Jul 7, 2020

Archive.zip

i have shared my code and schema file.

@wooj2
Copy link
Contributor

wooj2 commented Jul 10, 2020

I looked at your code, and when you are instantiating AWSAppSyncClientConfiguration, it doesn't seem like you are passing in a parameter for the connectionStateChangeHandler so you can get updates on your wireless connection. For example, you seem to have:

            let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig,
                                                                  cacheConfiguration: cacheConfiguration)

To get connection status updates, you will need to:

  1. Pass in, self for the connectionStateChangeHandler argument.
           let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig, cacheConfiguration: cacheConfiguration,
connectionStateChangeHandler: self)
  1. Change the application delegate so that it also conforms to: ConnectionStateChangeHandler.

  2. Implement the required function stateChanged. For example:

    func stateChanged(networkState: ClientNetworkAccessState) {
        print("I: stateChanged/networkState: \(networkState)")
    }

@wooj2 wooj2 added closing-soon-if-no-response This issue will be closed in 7 days unless further comments are made. and removed requesting info Further information is needed before this is actionable labels Jul 10, 2020
@stale stale bot removed the closing-soon-if-no-response This issue will be closed in 7 days unless further comments are made. label Jul 10, 2020
@wooj2 wooj2 added the closing-soon-if-no-response This issue will be closed in 7 days unless further comments are made. label Jul 10, 2020
@vishaldroisys
Copy link
Author

Hello,

Can you please look into my code??

AppDelegate.swift.zip

still not working for me.

Thanks

@stale stale bot removed the closing-soon-if-no-response This issue will be closed in 7 days unless further comments are made. label Jul 13, 2020
@wooj2
Copy link
Contributor

wooj2 commented Jul 13, 2020

Hi @vishaldroisys,

Thank you for posting an update of your code. I copy and pasted the relevant pieces of your application delegate into my project, and I am unable to reproduce the behavior you are seeing:

When I turn wifi off of my device (which does not have a cell/LTE/data connection), I see the following print out:

I: stateChanged/networkState: Offline

When I turn wifi on, i see the following print out:

I: stateChanged/networkState: Online

I am not sure why you are unable to get reachability status given that I have verified that your code has the following 3 items required:

  1. Have you class conform to the protocol: ConnectionStateChangeHandler

  2. Pass in the connectionStateChangeHandler:self when instantiating AWSAppSyncClientConfiguration. Therefore, your app delegate code will look something like this:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        do {
            let cacheConfiguration = try AWSAppSyncCacheConfiguration()
            let appSyncServiceConfig = try AWSAppSyncServiceConfig()
            let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig,
                                                                  cacheConfiguration: cacheConfiguration,
                                                                  connectionStateChangeHandler: self)
            appSyncClient = try AWSAppSyncClient(appSyncConfig: appSyncConfig)
            
            appSyncClient?.apolloClient?.cacheKeyForObject = { $0["id"] }
        } catch {
            print("Error initializing appsync client. \(error)")
        }
        
        return true
    }
  1. Implement the required callback
    func stateChanged(networkState: ClientNetworkAccessState) {
        print("I: stateChanged/networkState: \(networkState)")
    }

At this point, we believe that there is some configuration, device, or network specific difference between our development environments, and unfortunately, we are unable to make forward progress at this time. If this is an important issue, you may want to try debugging this issue on your own given the guidance above: #393 (comment)

Best of luck.

@vishaldroisys
Copy link
Author

Hello,

We have implemented same. can you please look into code that i shared last.

Thanks

@vishaldroisys
Copy link
Author

Hello,

I have attaching my app video. please have to see that.

https://qa-distributorpicomt.drscloud.net/Screen%20Recording%202020-07-14%20at%205.27.56%20PM.mov.zip

Thanks.

@wooj2
Copy link
Contributor

wooj2 commented Jul 14, 2020

Hi @vishaldroisys,

I noticed from the video you are teathered to your phone in the video. I suspect that the iPhone simulator process is not detecting that a connection has been re-connected. Can you try this on a physical device instead of using the simulator?

@abhishekjangid10
Copy link

abhishekjangid10 commented Jul 20, 2020

Hi @vishaldroisys , Have you fix this issue?
I also facing same issue. Synching stop working suddenly . I am not sure how to resume Synching connection.

I am facing this error.

Realtime connection is stale, disconnected. 2020-07-19 13:34:02.339164+0530 Whizwall[1803:327782] The operation couldn’t be completed. (AppSyncRealTimeClient.ConnectionProviderError error 3.) 2020-07-19 13:34:02.339296+0530 Whizwall[1803:327782] Retrying subscription 7DAA2CE2-70E0-44EE-973E-8CA44B7D7DA4 after milliseconds(204853) 2020-07-19 13:34:02.339501+0530 Whizwall[1803:327782] The operation couldn’t be completed. (AppSyncRealTimeClient.ConnectionProviderError error 3.) 2020-07-19 13:34:02.339591+0530 Whizwall[1803:327782] Retrying subscription 5A13E2E5-6F43-4C67-ACCC-DB81A4E7B55C after milliseconds(204872)

@palpatim palpatim added the requesting info Further information is needed before this is actionable label Jul 28, 2020
@palpatim
Copy link
Contributor

@abhishekjangid10 Please take a look at #396, it sounds like you're hitting that condition.

@vishaldroisys We are going to close this issue for now. If you are able to repro with a physical device rather than a tethered one, please feel free to reopen and provide more info.

@abhishekjangid10
Copy link

@palpatim Thanks for the update. Its seems similar issue but different case.
It maybe timeout issue also. I have update AWSSync framework with latest 3.1.4 version today. I will test this in next week. Hope this should be the fix Or I will come back to you.
Thanks for the help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question A question about how to use an existing feature requesting info Further information is needed before this is actionable
Projects
None yet
Development

No branches or pull requests

4 participants