Skip to content

Retry transient upload failures instead of aborting the whole sync - #171

Open
thefnox wants to merge 1 commit into
jackTabsCode:mainfrom
thefnox:fix/transient_upload_failures
Open

Retry transient upload failures instead of aborting the whole sync#171
thefnox wants to merge 1 commit into
jackTabsCode:mainfrom
thefnox:fix/transient_upload_failures

Conversation

@thefnox

@thefnox thefnox commented Aug 15, 2026

Copy link
Copy Markdown

No description provided.

Roblox's edge proxy intermittently rejects valid upload requests with an
HTML 400 page ("Your browser sent an invalid request") before they reach
the Assets API. Previously any non-200/non-429 response set the global
fatally_failed flag, which aborted every other in-flight upload and
operation poll - discarding uploads that had already succeeded server-side
and leaving their asset ids out of the lockfile (orphaning the assets).

Now:
- Connection errors, 5xx responses, and proxy-level HTML 400s retry with
  exponential backoff (up to the existing 5-attempt cap).
- Only 401/403 set the global fatal flag, since a bad or underprivileged
  API key genuinely dooms every request.
- Other failures (e.g. real 400s from the API) fail only their own asset,
  letting the rest of the sync finish and persist.

Co-Authored-By: Claude Fable 5 <[email protected]>
@thefnox
thefnox force-pushed the fix/transient_upload_failures branch from 2fa8d7a to 208d54e Compare August 15, 2026 11:40
@thefnox thefnox changed the title Fix/transient upload failures Retry transient upload failures instead of aborting the whole sync Aug 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant