Occasionally, TurboStreams will attempt to hook up a stream but the stream “doesn’t work.” Rails logs show a broadcast to the identifier, but your client doesn’t receive anything…
This may happen when the ActionCable server receives an
unsubscribe command rapidly followed by a
subscribe command for the same channel identifier. If the
subscribe is handled first, it is ignored (since the client is already subscribed). The
unsubscribe then kills the channel and your stream is borked.
One scenario where you may encounter this: when two pages have a
turbo-cable-stream-source with the same channel identifier and the user navigates from one to the other. The
unsubscribe sent when the first
TurboCableStreamSourceElement is removed will be followed by a
subscribe when the
TurboCableStreamSourceElement is loaded for the new page.
Submitted an ActionCable patch to address this client-side: ActionCable client ensures subscribe command is confirmed. by spinosa · Pull Request #41581 · rails/rails · GitHub