Frun1na opened a new issue, #6530:
URL: https://github.com/apache/rocketmq-dashboard/issues/6530

   ### 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 `rocketmq-studio` branch, or I 
have stated the exact version I am running below.
   
   ### Studio Version
   
   branch: `rocketmq-studio`
   git commit id: `779b8c0e`
   deployed as: reproduced by a component test against that commit (the 
affected code is the web client)
   
   ### Runtime Environment
   
   OS: Ubuntu on WSL2
   MySQL: not applicable — the defect is in the web client's error handling
   browser: not applicable — reproduced in a jsdom unit test (vitest + Testing 
Library)
   
   ### Connected RocketMQ Cluster
   
   RocketMQ version: not applicable — reproduced with a stubbed consumer-group 
API in a unit test
   access mode: not applicable
   deployment: not applicable
   
   ### Describe the Bug
   
   A failed consumer-group deletion reports nothing at all. Both delete flows 
run their request inside
   `Modal.confirm`'s `onOk` and never handle a rejection
   (`web/src/pages/instance/consumer.tsx`):
   
   ```tsx
                   onOk: async () => {
                     await deleteConsumerGroup(record.name, selectedInstanceId 
|| undefined);
                     await reloadConsumerGroupPage();
                     setSelectedRowKeys((prev) => prev.filter((key) => key !== 
record.name));
                     message.success(`消费组 ${record.name} 已删除`);
                   },
   ```
   
   antd awaits the promise returned by `onOk`, logs a rejection with 
`console.error` and leaves the
   dialog open: no toast, no state change, and the operator sees only the 
confirm still standing there.
   The same holds for the toolbar's batch delete (`确认批量删除` → 
`batchDeleteConsumerGroups`), which
   additionally does its own partial-failure reporting but has no branch for a 
request-level failure.
   Every sibling confirm in the same page and in the neighbouring pages catches 
and reports
   (`consumer.tsx` create confirm, `topic.tsx`, `alerts.tsx`, 
`instance/index.tsx`), so this is the
   missing copy of an established pattern.
   
   ### Steps to Reproduce
   
   Reproduced by a component test rather than against a cluster:
   
   1. Render the consumer page with one group listed and make 
`deleteConsumerGroup` reject.
   2. Confirm "删除" on the group's row (or select rows and confirm "删除 (2)").
   3. Nothing is reported: no error toast, and vitest reports the rejection as 
an unhandled rejection.
   
   ### What Did You Expect to See?
   
   The failed deletion should be reported the way every sibling delete reports 
it, and the row/selection
   should stay as it was.
   
   ### What Did You See Instead?
   
   No message at all, plus an unhandled rejection on the console; the dialog 
simply stays open.
   
   ### Additional Context
   
   - A fix with regression tests follows in a pull request.
   - The cases are pinned by unit tests that fail without the fix:
     `AssertionError: expected "Mock" to be called with arguments: [ '操作失败' ]` 
and two
     `Unhandled Rejection: Error: delete failed`.
   - The proxy restart confirm in `cluster/index.tsx` has the same shape and is 
already being fixed in
     #5809.
   
   ### 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]

Reply via email to