message: Client may get stuck fetching ops from server not realizing it has all the ops
  Address
diff: @@ -817,6 +817,22 @@ export class DeltaManager
  let listenerToClear: ((op: ISequencedDocumentMessage) => void) | undefined;
  if (to !== undefined) {
  + const lastExpectedOp = to - 1; // make it inclusive!
  +
  + // It is possible that due to asynchrony (including await above), required ops were already
  + // received through delta stream. Validate that before moving forward.
  + if (this.lastQueuedSequenceNumber >= lastExpectedOp) {
  + this.logger.sendPerformanceEvent({
  + reason: this.fetchReason,
  + eventName: "ExtraStorageCall",
  + early: true,
  + from,
  + to,
  + ...this.connectionStateProps,
  + });
  + return;
  + }
  +
  controller = new AbortController();
  assert(this.closeAbortController.signal.onabort === null, 0x1e8 /* "reentrancy" */);
  @@ -828,7 +844,8 @@ export class DeltaManager
  // detected gap, this gap can't be filled in later on through websocket).
  // And in practice that does look like the case. The place where this code gets hit is if we lost
  // connection and reconnected (likely to another box), and new socket's initial ops contains these ops.
  - if (op.sequenceNumber >= to) {
  + assert(op.sequenceNumber === this.lastQueuedSequenceNumber, "seq#'s");
  + if (this.lastQueuedSequenceNumber >= lastExpectedOp) {
  this.logger.sendPerformanceEvent({
  reason: this.fetchReason,
  eventName: "ExtraStorageCall",
  