Repository navigation
fix(tiers): explain blocked deletion and retry object cleanup - #282
Merged
Merged
Conversation
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.
Pull Request
Description
When a tier DELETE reports that its backend is still in use, show the server's deletion diagnosis and the next action instead of leaving the user with a generic error. Support rechecking, a bounded object-cleanup retry, and an explicit final DELETE when the advisory check finds no local blockers.
Accepted or busy cleanup requests keep the tier visible. Only a successful final DELETE reports deletion success and reloads the list. Unsupported servers, unknown response values, and request failures preserve the original deletion error. Ignore stale responses across tier changes and unmounts, prevent duplicate requests, and restore focus to the initiating Delete button when the dialog closes. Add translations for all 14 supported locales.
Type of Change
Testing
Validated Console commit
3117e3e(base994fc921ccbdf96b600ce6d5a8b47f43c58efc83); the 20 committed files match the final reviewed and tested source manifest.nvm use v22followed bypnpm install --frozen-lockfile,pnpm type-check,pnpm lint,pnpm format:checkandpnpm test:run: all passed; 847 tests passed, zero failures or skips.git diff --checkpassed.Production build and a complete live Console/storage end-to-end matrix were not run; type checking, the full test suite and browser scenarios bound the changed UI behavior.
Checklist
Related Issues
Backend integration: rustfs/rustfs#9035. Older servers retain the original deletion error and supported actions.
Regression coverage: https://github.com/rustfs/auto-testing/pull/120.
Screenshots (if applicable)
Actual local Next.js Console at
/tiers/with Playwright-controlled admin API responses. These captures demonstrate Console rendering and interaction; they do not establish live RustFS cleanup worker integration. Cleanup retry acceptance is not tier deletion success.Images are hosted on a dedicated screenshot branch, separately from the product diff, and pinned to an immutable commit.
Additional states:
Accepted limited cleanup pass; zero enqueued and truncated scan
Busy: retry deferred
Dark mode, mobile
Older server preserves original deletion error
Diagnostic failure
Unknown blocker
Advisory clear still requires authoritative Delete
Additional Notes
Two independent final reviewers covered the following lenses on the frozen source diff:
Rollback: revert this Console change. Existing tier DELETE remains available independently of the additive backend APIs.
Browser verification uses mocked admin responses to exercise loading, blockers, accepted and busy retries, unsupported servers, failures, unknown responses and authoritative DELETE outcomes. Backend HTTP behavior is verified in the linked RustFS PR. No production credentials or data are used.