···663663 result$,
664664 // Store replay result
665665 onPush(result => {
666666- if (!result.hasNext && !result.stale)
666666+ if (result.stale) {
667667+ // If the current result has queued up an operation of the same
668668+ // key, then `stale` refers to it
669669+ for (const operation of queue) {
670670+ if (operation.key === result.operation.key) {
671671+ dispatched.delete(operation.key);
672672+ break;
673673+ }
674674+ }
675675+ } else if (!result.hasNext) {
667676 dispatched.delete(operation.key);
677677+ }
668678 replays.set(operation.key, result);
669679 }),
670680 // Cleanup active states on end of source