zmuxuny opened a new issue, #7181: URL: https://github.com/apache/rocketmq-dashboard/issues/7181
### 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 Frontend regression reproduced with Vitest/jsdom and real Ant Design controls. No live cluster or production database used. ### Connected RocketMQ Cluster Not required: deferred listSystemAlertsPage and acknowledgeAlert service responses reproduce the UI race. ### Build Toolchain Node.js 24.19.0; Vitest 4.1.10; project TypeScript configuration. ### Describe the Bug Single-row handleAck only updates acknowledged:true locally. It neither invalidates a pending alert-list GET nor reloads the current query. A pre-ACK snapshot can therefore restore the Acknowledge action after the POST succeeded. Persisted acknowledgedBy/acknowledgedAt are also not loaded after a normal successful ACK. ### Steps to Reproduce 1. Load an unacknowledged warning alert and start its Acknowledge request. 2. While the POST is pending, select the Warning filter. Keep the resulting list response pending with an acknowledged:false snapshot. 3. Complete the ACK successfully, then deliver the earlier list response. 4. Observe that Acknowledge becomes available again. A second regression settles ACK and the older read in the same React batch, then fails the reconciliation read. A refresh nonce alone still loses the successful local ACK in this ordering. ### What Did You Expect to See? After a successful write, pre-ACK list responses must not undo the acknowledgement. Reload the current filters and page to obtain persisted attribution. If that read fails, preserve the local successful ACK and offer the existing read retry. ### What Did You See Instead? The older GET replaces the acknowledged row with acknowledged:false. Without any intervening filter/read, a normal successful ACK shows no persisted actor/time until another read occurs. ### Additional Context Regression evidence on the stated base: six failing cases plus a passing failed-write control. A scoped fix passes all 81 related System Alerts/API/service tests and TypeScript checks. Related bulk-ACK/loading/summary patches were checked; this report concerns the existing single-row ACK completion path. ### 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]
