aws-amplify / amplify-js

A declarative JavaScript library for application development using cloud services.
https://docs.amplify.aws/lib/q/platform/js
Apache License 2.0
9.44k stars 2.13k forks source link

AWS AppSync Subscription Connection Issue – Assistance Needed #14012

Open rahul-huma opened 1 week ago

rahul-huma commented 1 week ago

Before opening, please confirm:

JavaScript Framework

React

Amplify APIs

GraphQL API

Amplify Version

v5

Amplify Categories

api

Backend

None

Environment information

``` # Put output below this line ```

Describe the bug

Hello,

I'm facing an issue with AWS AppSync subscriptions where the connection intermittently breaks, and I've been troubleshooting it for a couple of days now. I am using aws amplify Gen 1(v5). Here’s what happens:

  1. Error Message: I frequently encounter the following error:

    A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received.
  2. Reproducibility: This issue typically occurs in the following scenarios:

    • When the browser window with the AppSync connection remains idle for 2–4 hours.
    • After any network disruption (e.g., intermittent internet connection).
  3. Current Setup: I have implemented a retry logic to reconnect when the connection drops. However, I'm struggling to accurately detect whether the subscription is active after reconnection attempts, as the error above can still appear unexpectedly.

I suspect this error is contributing to the connection breaking, and I'd like to confirm if there are any known solutions for handling AWS AppSync subscription stability in long-running or idle scenarios. Additionally, if you have advice on reliably determining the connection status, it would be greatly appreciated.

Thank you in advance for your help!

Expected behavior

I should always retry to connect to the subscription

Reproduction steps

I am just using Gen 1 v5 of this library.

Code Snippet

// Put your code below this line.

Log output

``` // Put your logs below this line ```

aws-exports.js

No response

Manual configuration

No response

Additional configuration

No response

Mobile Device

No response

Mobile Operating System

No response

Mobile Browser

No response

Mobile Browser Version

No response

Additional information and screenshots

No response

chrisbonifacio commented 2 days ago

Hi @rahul-huma 👋 thanks for raising this issue.

I see that you are using v5 of amplify. is there any reason you have not upgraded to v6 yet?

in any case, I believe in v5 you should still have access to the subscription connection states through the Hub listener utility.

Here's the documentation for that:

https://docs.amplify.aws/gen1/react/build-a-backend/graphqlapi/subscribe-data/#subscription-connection-status-updates

there is an info accordion below that that shows how you can troubleshoot connection issues and automated reconnection.

Please give that a look, try it out, and let us know if it helps!

chrisbonifacio commented 1 day ago

another thing that might be worth confirming is whether this error occurs in other browsers or in incognito mode for chrome?

the exact error message seems to be related to a chrome.addListener() method.

some other developers have mentioned chrome extensions that were causing the same errors in apps they were building. can you check this thread and see if it helps unblock you?

https://stackoverflow.com/questions/72494154/a-listener-indicated-an-asynchronous-response-by-returning-true-but-the-messag