[BR-2136]: keep folder uploads running when individual files fail - #2075
Open
terrerox wants to merge 4 commits into
Open
[BR-2136]: keep folder uploads running when individual files fail#2075terrerox wants to merge 4 commits into
terrerox wants to merge 4 commits into
Conversation
Folder uploads no longer abort and roll back when a single file fails. The manager marks the task with hasFailedFiles, lets the queue finish the remaining items, and announces the failure once the whole folder is done, keeping already-uploaded content. Referral tracking and network logging are skipped for partially failed folders. Failed files land in the retry list with duplicates replaced by taskId on re-add. Errors that can never succeed (402 payment required, file size exceeded) are flagged non-retryable on their retry entries. Also renames boolean flags to the is/has/should convention and fixes DEFAULT_OPTIONS being mutated via Object.assign in uploadItemsThunk.
Deploying drive-web with
|
| Latest commit: |
dcf5de1
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://0b948ba0.drive-web.pages.dev |
| Branch Preview URL: | https://feat-folder-upload-partial-f.drive-web.pages.dev |
sg-gs
reviewed
Jul 28, 2026
| } | ||
|
|
||
| addTasks(tasks: RetryableTask[]) { | ||
| // A task can only appear once per taskId: re-adding a failed task replaces its entry |
Member
There was a problem hiding this comment.
I would add JSDoc to this function rather than this comment
sg-gs
previously approved these changes
Jul 28, 2026
Base automatically changed from
refactor/uploadManager-and-uploadManagerFolder
to
master
July 28, 2026 14:40
|
sg-gs
approved these changes
Jul 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Context
Users were seeing a folder upload reported as successful when the folder had not actually been uploaded: a single file failing mid-upload could kill the queue while the task logger still announced success, leaving the user with no signal that content was missing. This PR implements the solution proposed by the product team: keep uploading everything that can succeed, be honest about what failed, and give the user a way to retry exactly those files.
What changed
Folder uploads no longer abort and roll back when a single file fails. The manager marks the task with hasFailedFiles, lets the queue finish the remaining items, and announces the failure once the whole folder is done, keeping already-uploaded content. Referral tracking and network logging are skipped for partially failed folders.
Failed files land in the retry list grouped by their parent task, with duplicates replaced by taskId on re-add. Errors that can never succeed (402 payment required, file size exceeded) are marked non-retryable and shown as "Not allowed" in the retry modal instead of a retry button.
Also renames boolean flags to the is/has/should convention, fixes DEFAULT_OPTIONS being mutated via Object.assign in uploadItemsThunk, normalizes the two RetryableTask param shapes in TaskToRetryItem, and adds size props to TaskLoggerButton for the retry modal polish.
Related Issues
Related Pull Requests
Checklist
Testing Process
Additional Notes