You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 99b6de7
Browse filesBrowse the repository at this point in the historyBrowse files
fix(account-deletion): resume the workspace storage sweep from its saved listing position (#9159)
* fix(account-deletion): resume a workspace storage sweep from its saved listing position
A sweep that hit its deadline checkpointed only the family, so the next run
re-listed the family from page one. When the early pages held only kept
objects and walking them filled the handler window, every run re-walked them,
deleted nothing, spent an attempt, and eventually dead-lettered, leaving the
unreferenced objects behind them.
A stopped run now checkpoints { family, pageToken } and the next run resumes
there; moving the saved position counts as progress, so the run continues
without spending an attempt. Completing a family clears the token. A saved
token that no longer lists (expired or rejected by the provider) restarts the
family from the start once, and that restart does not count as progress, so a
cursor that never lists stays bounded by the attempt budget. Payloads without
a token still parse; a present token must be a non-empty string of at most
4096 characters.
* fix(account-deletion): bound position-only sweep resumes and reject foreign local page tokens
Provider cursors are opaque, so a moved listing position alone no longer
counts as progress past 1000 resumes per event; past that a run that only
moved its position spends an attempt, keeping the sweep bounded even by a
cursor that revisits positions. A local page token that is not a key under
the prefix (one saved under another storage provider) now fails to list, so
the sweep restarts the family instead of skipping every key before it.
* fix(account-deletion): retry a saved sweep position once before restarting its family
A single failed listing from a saved page token restarted the family from
the prefix start, so a transient provider error at a deep position threw
the position away. The first failure now records tokenFailures: 1 and
rethrows, so the outbox retries from the same position under its normal
attempt budget; only a second failure from that token restarts the family.
Any successful listing clears the count.
0 commit comments