zmuxuny opened a new issue, #5556: URL: https://github.com/apache/rocketmq-dashboard/issues/5556
### Before Creating the Bug Report - [x] I have searched the [open issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository and believe that this is not a duplicate. - [x] This is a defect in RocketMQ Studio, not a usage question and not a defect in another Apache RocketMQ repository. - [x] I can reproduce this on the current `master` branch, or I have stated the exact version I am running below. ### Studio Version Originally reported on `rocketmq-studio@0228dad5` on 2026-09-23. Current fix PR #5253 records fresh 2026-10-04 validation against `rocketmq-studio@6a68042fa73a513f40436ca721944b4de48181ec`. ### Runtime Environment Settings > Cloud Credentials frontend (`web/src/pages/settings/CloudCredentialTab.tsx`). The failure can be reproduced with a rejected `listCloudCredentials` request, without a cloud account or MySQL. ### Connected RocketMQ Cluster No live RocketMQ cluster or cloud account is needed to reproduce this frontend request/error path; mocked credential-list responses suffice. ### Build Toolchain _No response_ ### Describe the Bug A failed cloud-credential reload leaves rows and totals from the previous filter visible. `loadCredentials` catches the error and shows a transient toast, but keeps the previous `credentials` and `total` state; its `finally` block clears `loading`. An old Aliyun row can then appear under the Tencent filter with enabled Edit and Delete actions. In `CloudCredentialTab.tsx`, the success branch replaces the rows and count, while the failure branch only calls `message.error`. The current fix also covers stale actions while the new query is pending and export using the previous query during the search debounce window. ### Steps to Reproduce 1. Load the Cloud Credentials tab with an Aliyun credential visible. 2. Change the vendor filter to Tencent (or change the search/page) while making the replacement `listCloudCredentials` request fail. 3. After the transient error toast and loading state clear, observe that the old Aliyun row remains under the Tencent filter with enabled Edit and Delete actions; the table total also describes the old result set. 4. For the pending-query boundary covered by #5253, hold the replacement request pending and check that stale row actions are disabled. Change the search term and, during debounce, check that export cannot use the previous filter. ### What Did You Expect to See? A failed replacement request must not present the previous credential set as the result of the new filter or allow actions on those stale rows. Show a persistent load error with a retry that uses the current filters; after a successful retry, show fresh rows and total. Distinguish an initial load failure from a legitimately empty inventory. Actions should remain disabled while the displayed result belongs to an older query, including the search debounce window. Export should wait until a changed search term settles so its CSV uses the filter shown by the page; edits that do not change the effective query can keep the current result usable. ### What Did You See Instead? The old Aliyun row and total remain visible under a new Tencent filter after the request fails, with active Edit and Delete controls. During a pending changed search, export can still use the old filter. ### Additional Context ### Previous report and current fix (2026-10-04) This replaces [#5053](https://github.com/apache/rocketmq-dashboard/issues/5053), automatically closed by `github-actions[bot]` for inactivity on 2026-10-04. The closure was a stale-workflow action, not a maintainer rejection of the reported defect. The existing fix PR is [#5253](https://github.com/apache/rocketmq-dashboard/pull/5253), which remains open. October 4 validation, dated CI results, and remaining limitations are recorded there. Overall CI is not green. ### Historical verification (2026-09-26) The September 26 report referred to original PR #5054 and recorded 15 focused frontend tests passing. These results are historical; #5253 is the current fix PR and records the fresh October 4 validation and CI limitations. ### Report history and related work The original #5053 was filed on 2026-09-23. Its current fix PR #5253 remains open. Related [#5494](https://github.com/apache/rocketmq-dashboard/issues/5494), filed on 2026-10-03, collects failed-filtered-reload stale rows across ten pages, including Cloud Credentials. This focused replacement preserves the earlier report and existing PR association. It tracks the credential table's stale row/action handling, persistent current-filter retry, and pending/debounced-search export boundary. #5253 does not address all ten pages in #5494. #4527 addresses ACL, alert-rule and system-alert loading guards. #5048 handles the separate Notification Deliveries list. The focused regressions for this issue cover failed reload, initial failure, whitespace-only query edits, pending actions and the export boundary. ### Are You Willing to Submit a Pull Request? - [x] Yes, I am willing to submit a pull request. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
