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

   ### Before Creating the Bug Report
   
   - [x] Searched all-state Issues/PRs and inspected relevant current head 
differences and all public comments.
   - [x] This is a RocketMQ Studio frontend defect in this repository.
   - [x] Reproduced on the exact revision below.
   
   ### Studio Version
   
   `rocketmq-studio@5e4c39b053c35a5598cc79ff331b8a54e649d7b1`.
   
   ### Runtime Environment / Build Toolchain
   
   Windows 11, Node 24.15.0, npm 11.12.1. Automated reproduction uses real 
TopicPage rendering and pagination with controlled service responses. No 
deployment or network-outage experiment was performed.
   
   ### Connected RocketMQ Cluster
   
   No broker or database was contacted. The affected frontend path calls the 
ordinary Topic consumer pagination service for the selected instance.
   
   ### Describe the Bug
   
   `openDetail` catches a failed initial consumer request, but the consumer 
table's later `onChange` directly calls the same async loader with `void` and 
no rejection handler. A timeout after a successful initial load therefore 
produces an unhandled rejection and no Topic detail error message. The previous 
successful rows and controlled page remain visible.
   
   ### Steps to Reproduce
   
   1. Open a Topic's detail with at least two consumer pages. Let page 1 load 
successfully.
   2. Click consumer page 2.
   3. Let that consumer-page request reject with a network/timeout error 
without a business-response envelope.
   4. Observe the old page remains visible without the existing Topic detail 
failure feedback. The pagination promise rejects without being handled.
   
   The deterministic regression supplies twenty ordinary page-1 rows with total 
40, clicks the actual page-2 control, and rejects only that page request. The 
old-code assertion cannot find `Topic 详情加载失败,请稍后重试`; Vitest also identifies the 
unhandled rejection from the real pagination callback.
   
   ### What Did You Expect to See?
   
   A failed page request is handled and reported. The last successfully loaded 
page can remain visible, and the user can retry the requested page. A late 
failure from a superseded request or a closed/departed detail must not report 
against the current view.
   
   ### What Did You See Instead?
   
   The later pagination callback has no catch. Initial-open handling is 
bypassed, and the failed request does not update or notify the Topic page. For 
business-envelope failures the shared client may already show a global message; 
that does not handle the returned pagination promise, and the timeout path 
above has no such envelope.
   
   ### Additional Context
   
   Related #5472 / merged #5442 handles initial detail loading and independent 
route lookup. This report concerns the subsequent consumer pagination callback 
after both initial requests succeed. Current #6093 changes route verdicts, and 
#5495 clears failed Topic inventory loads; their actual diffs do not catch this 
callback.
   
   The proposed fix reuses the existing error message and guards its 
publication with consumer/detail request generations. The PR records actual 
red/green tests, static checks and build results. No API schema, consumer 
record semantics or broker operation changes.
   
   AI assistance: OpenAI Codex investigated, implemented and verified the 
change, with separate automated review. No live incident, external human review 
or maintainer approval is claimed.
   
   ### Are You Willing to Submit a Pull Request?
   
   - [x] Yes.
   
   ### Implementation PR
   
   https://github.com/apache/rocketmq-dashboard/pull/6293
   


-- 
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