676
throw new CancellationError();
677
}
679
>
// disposes the old one, ending THIS pass's stream cleanly. That is
680
>
// expected — return quietly and let {@link _runConsumerLoop} hand
681
>
// off to the new query. Only an unexpected end of the *current*
682
>
// query (no swap) is the real "stream ended without a result"
683
>
// failure that should mark the pipeline for recovery.
684
>
if (this._query !== query) {
685
return;
686
}
688
} catch (err) {
689
const fatal = err instanceof Error ? err : new Error(String(err));