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]
