The onBark getter second time calls asBroadcastStream on _barkController.stream . A newly created broadcast stream will try to associate with _barkController.stream , but will fail because there is already a listener.
So, yes: there can be several listeners in broadcast streams, but the asBroadcastStream method asBroadcastStream not be called several times in a stream with one subscription.
One solution is to cache the result of your first asBroadcastStream .
source share