spaces icon indicating copy to clipboard operation
spaces copied to clipboard

Spaces SDK gets stuck after channel is suspended and reconnects

Open ajaffie opened this issue 1 year ago • 2 comments

I've been trying to fix this bug where users are seeing themselves in a space and other users see that user in the space when they aren't there. I eventually figured out that the bug is caused by the user disconnecting long enough for the connection and channel to be suspended and returning later without refreshing the page. The Ably SDK seems to reconnect fine, and the channel re-attaches, but the space enters an irrecoverable state. I think what's happening is the space is hanging on to the original connection id while the Ably SDK uses a new one. A few pieces of evidence support this:

  • The affected user sees an entry in others that matches their client id and profile but with the original connection id
  • Until the affected user refreshes, they cannot leave any space they entered before disconnecting

When trying to leave an affected space, this error occurs: Error: must enter a space to perform this operation. Seems to be caused by calling getByConnectionId with the outdated connection id here

Let me know if there's anything else I can do to help.

ajaffie avatar Jul 30 '24 20:07 ajaffie

Hi @ajaffie ! Thank you for bringing this to our attention.

Could you please provide a reproducible example or code samples showing how you are using the Spaces SDK, along with the steps you take to reproduce the issue?

VeskeR avatar Aug 01 '24 12:08 VeskeR

Sorry about the long delay. You can actually reproduce this issue on the Spaces demo site. All you need to do is go to one of the slides, disconnect from the network or simulate offline using browser dev tools, wait until the "Presence state is out of sync due to channel being in the SUSPENDED state" error log, then reconnect. You will get lots of "Gn: must enter a space to perform this operation" error logs and you'll have a duplicate entry at the top of the page. The demo site actually locks up as well.

ajaffie avatar Oct 23 '24 13:10 ajaffie