alyssaxuu/screenity · error · Error

Drive resumable upload made no progress at offset ${offset}

Error message

Drive resumable upload made no progress at offset ${offset}

What it means

Drive repeatedly accepted none of the current chunk (successive 'stalled' responses with no offset advance) and stalledRounds reached MAX_STALL_ROUNDS, so the uploader aborts to avoid an infinite resend loop. Thrown in uploadResumable when offset never progresses across consecutive stalled rounds.

Source

Thrown at src/pages/Background/drive/handleSaveToDrive.js:257

        delayMs: Math.round(delay + jitter),
      });
      await new Promise((r) => setTimeout(r, delay + jitter));
    }

    if (advanced) {
      stalledRounds = 0;
      continue;
    }
    if (!stalled) {
      throw new Error(
        `Drive chunk PUT exhausted retries at offset ${offset}`
      );
    }
    // Drive accepted none of the chunk. Resending the same range is correct,
    // but bound it so a persistently stalled upload fails instead of looping.
    stalledRounds += 1;
    if (stalledRounds >= MAX_STALL_ROUNDS) {
      throw new Error(
        `Drive resumable upload made no progress at offset ${offset}`
      );
    }
    const stallDelay = Math.min(1000 * Math.pow(2, stalledRounds - 1), 15000);
    diagEvent("drive-chunk-stall", {
      offset,
      round: stalledRounds,
      delayMs: stallDelay,
    });
    await new Promise((r) => setTimeout(r, stallDelay));
  }

  throw new Error("Drive resumable upload finished without final response");
};

const isAuthError = (err) => {
  const msg = String(err?.message || err || "");
  return / 401\b/.test(msg) || /401 /.test(msg);

View on GitHub (pinned to 512606387b)

Solutions

  1. Resume the session by querying PUT Content-Range: bytes */size to learn the true committed offset
  2. Restart the upload entirely if the session expired (410)
  3. Increase MAX_STALL_ROUNDS only if long stalls are expected; otherwise treat as a network failure
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/pages/Background/drive/handleSaveToDrive.js:257 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of alyssaxuu/screenity@512606387b (2026-09-02). Data as JSON: /api/errors/20b07ff333ce12f3. Report an issue: GitHub.