unbridled-41 opened a new issue, #4655:
URL: https://github.com/apache/rocketmq-dashboard/issues/4655

   ### Studio Version
   
   branch: `master`
   git commit id: `d50ffecc9d7e8f8f46da64198831bd7952e6974e`
   deployed as: built from source (dev profile)
   
   ### Runtime Environment
   
   Ubuntu (WSL2), Node 24, Chrome; reproducible via the component's Vitest 
suite.
   
   ### Connected RocketMQ Cluster
   
   Not required — the failure is on the `/api/metrics/profiles` request in 
front of the explorer.
   
   ### Describe the Bug
   
   `MetricsExplorer` renders a permanent error and stops recovering once 
`listMetricProfiles()` has failed a single time. 
`web/src/components/MetricsExplorer.tsx`:
   
   - the profiles effect (lines 663-691) catches a failed 
`listMetricProfiles()` with `setProfileError(true)` (line 681) — the only write 
of that state in the file (`setProfileError(false)` occurs nowhere);
   - the render branch (lines 1307-1310) shows `profileError ? <Alert 
type="error" ... />` above the panel content, with no retry action.
   
   The effect re-runs whenever its `loadAll` dependency changes (e.g. switching 
the instance selector on `/ops/dashboard` re-runs it), and a successful re-run 
fetches profiles, sets `profileId` and kicks off `loadAll` — but `profileError` 
stays `true`, so the error `Alert` keeps rendering over a now-loading (and 
eventually loaded) explorer until the component is unmounted.
   
   ### Steps to Reproduce
   
   1. Open `/ops/dashboard` (the explorer is mounted at the bottom of the page).
   2. Make the `GET /api/metrics/profiles` request fail once (backend restart, 
transient 5xx/timeout).
   3. The explorer area shows "指标模板加载失败" / "Failed to load metric profiles".
   4. Switch the instance selector to another instance (the profiles effect 
re-runs and succeeds).
   
   ### What Did You Expect to See?
   
   The explorer recovers: the error state clears on the next successful 
profiles load and the panels render again.
   
   ### What Did You See Instead?
   
   The error banner stays permanently; the panels behind it never become 
visible again for this mount, and there is no retry button on the alert.
   
   ### Additional Context
   
   A Vitest regression that fails the profiles request once, re-renders the 
component with the request succeeding, and asserts the panels become visible 
fails on unmodified `master` (the error alert remains and the panel content 
never appears).
   
   AI-assisted source audit; the fail-before test was executed locally with 
Node 24.
   


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