zmuxuny opened a new issue, #7151: URL: https://github.com/apache/rocketmq-dashboard/issues/7151
### 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 rocketmq-studio at 127c47b06a268cc74224d5f34c56ec7c36ac0d55. ### Runtime Environment Node.js 24.19.0, Vitest 4.1.10/jsdom, real React Router and real Ant Design Modal.confirm. Backend services are mocked at the boundary; no real resources were deleted. ### Connected RocketMQ Cluster No live broker needed: the failure is frontend mutation dispatch. Two synthetic instances, instance-a and instance-b, each contain orders-consumer. ### Build Toolchain Node.js 24.19.0 / npm 11.9.0; existing installed project dependencies. ### Describe the Bug ConsumerPageContent is keyed by instance, but its single/batch deletion confirmations use static Modal.confirm. These separate-root dialogs survive the owning component unmount, retaining onOk callbacks with the previous instance ID. An operator can navigate to another instance/page and still confirm deletion against the abandoned instance. The dialog only displays the group name or count. The same page also uses static confirmations for creation and high-risk settings, which should share the ownership fix. ### Steps to Reproduce 1. Open the consumer page for instance-a and open single or batch deletion for orders-consumer. 2. With the confirmation open, use browser history to leave the page or return to instance-b's consumer page. 3. The old dialog remains over the new page. 4. Confirm it. In the controlled real-component test, wait until instance-b's list request has occurred before clicking. ### What Did You Expect to See? Leaving the owning instance/page dismisses its pending mutation confirmations. Abandoned confirmations and delayed validation continuations must not start mutations. Current-page confirmation behavior remains available. ### What Did You See Instead? After instance-b loads, the old single confirmation calls deleteConsumerGroup('orders-consumer', 'instance-a'); batch calls batchDeleteConsumerGroups(['orders-consumer'], 'instance-a'). The real-AntD diagnostic has 4 failing regressions (single/batch route exit and old-instance dispatch) and 2 passing current-page controls. ### Additional Context All-state issue/PR search and near-match patch inspection found no equivalent fix. #1707 keys consumer page state; #4490 is the topic boundary; #6531/#7046 add deletion error feedback; #6182 updates settings risk baselines. None disposes these static confirmations. A bounded fix can scope all four confirmation flows to their owning page without changing backend APIs or globally destroying other dialogs. Reproduction uses service mocks, not a deployed cluster. ### 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]
