Aws-mobile-appsync-sdk-js: Unhandled GraphQL subscription error - AMQJS0008I Socket closed.

Created on 12 Oct 2019  路  2Comments  路  Source: awslabs/aws-mobile-appsync-sdk-js

Note: If your issue/feature-request/question is regarding the AWS AppSync service, please log it in the
official AWS AppSync forum

See also the following (which is the same issue, but may have replies I suppose)
https://forums.aws.amazon.com/thread.jspa?threadID=311194&tstart=0

Do you want to request a feature or report a bug?

BUG

What is the current behavior?

Appsync for mobile, where network is inherently unreliable, has the following easy to reproduce problem.

1./ Create a React App to work with AppSync where you want to use GraphQL subscriptions (I've been through many examples, here's the latest https://tylermcginnis.com/building-serverless-react-graphql-apps-with-aws-appsync/)

2./ Build and run the App and all works fine.

3./ Take the client browser off line for about 60 seconds, and then take it back online.

Result. Very consistently, you get the following issue logged/highlighted to the developer tools console :

  • Unhandled GraphQL subscription error
  • errorMessage: "AMQJS0008I Socket closed."
    The behaviour is totally reproducible using many of the AppSync or Amplify example projects in the AWS git samples code repo (Note: I'm focusing on the ones that illustrate subscriptions).

As far as I can tell, the bit of code that croaks is node_modules/apollo-client/core/ObservableQuery.js (you can search for "Unhandled GraphQL subscription error" in that file. Sometimes the stack trace in the console window will have highlighted it.)

As far as I can tell, the AppSync node package is pegged to a version Apollo Client that will always give this behaviour, and there seems to be no way to break that dependency and get past this behaviour (after a lot of research that's what I've concluded, and I hope to be proved wrong by some helpful person latter in this thread.)
I've also had this self same issue with this example project https://github.com/awslabs/aws-mobile-appsync-sdk-js/tree/master/tutorials/react-offline-realtime-todos.

So if you want to know what the package.json looks like to reproduce this problem - look in the two example "demo" project repos I've supplied.

In the end, after weeks of learning curve, this is a show stopper for me. Would love to know how to get around this.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.

See text above.

What is the expected behavior?

See text above. I expect the thing to be robust to intermittent network for mobile devices.

Which versions and which environment (browser, react-native, nodejs) / OS are affected by this issue? Did this work in previous versions?

React - using a browser on mobile (but you get the same behaviour on desktop).

to-be-reproduced subscription-link

Most helpful comment

@ankanlim sorry for the late response, we are looking into this

All 2 comments

Facing the same issues. Subscriptions don't recover from network outages. Is this a bug or intended behaviour? Is anyone replying to those issues?

@ankanlim sorry for the late response, we are looking into this

Was this page helpful?
0 / 5 - 0 ratings