alyssaxuu/screenity · error · Error

Drive chunk PUT exhausted retries at offset ${offset}

Error message

Drive chunk PUT exhausted retries at offset ${offset}

What it means

All MAX_CHUNK_ATTEMPTS retries for the current chunk failed with transient statuses (408/429/5xx) or non-advancing responses, and the loop did not classify the outcome as 'stalled'. Thrown in uploadResumable to abort rather than loop indefinitely.

Source

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

        );
      }
      const delay = Math.min(1000 * Math.pow(2, attempt), 30000);
      const jitter = Math.random() * 250;
      diagEvent("drive-chunk-retry", {
        offset,
        status: chunkRes.status,
        attempt: attempt + 1,
        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));

View on GitHub (pinned to 512606387b)

Solutions

  1. Retry the whole upload later, resuming via the session status endpoint (PUT Content-Range: bytes */size)
  2. Check connectivity and the Drive status dashboard before surfacing a user-facing failure
  3. Resume from the committed offset reported by the status query
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/pages/Background/drive/handleSaveToDrive.js:249 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/792e765f2e05405d. Report an issue: GitHub.