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

   ## Problem
   
   A failed consumer-progress request is indistinguishable from a group with no 
queue data. The progress tab asserts that the group is not online with zero 
brokers and zero queues, and the health tab keeps reporting a healthy group 
although the queue progress it summarizes was never read.
   
   ## Evidence
   
   `web/src/pages/instance/consumer.tsx` (`loadProgress`, before the fix):
   
   ```ts
   try {
     const progress = await getConsumerProgress(groupName, selectedInstanceId 
|| undefined);
     setProgressByGroup((prev) => ({ ...prev, [cacheKey]: progress }));
   } catch {
     if (!silent) message.error(t('consumer.fetchProgressFailed', { name: 
groupName }));
   }
   ```
   
   No error state is recorded, so the render falls back to the empty defaults 
(`progressByGroup[key] ?? []`) and:
   
   - the progress table shows `消费组不在线,暂无队列进度数据` (`locale.emptyText`), a factual 
claim about the group that the code never established;
   - the summary cards show `总 Broker 数: 0`, `总 Queue 数: 0`, `总堆积: 0`;
   - `analyzeConsumerGroupHealth(group, subscriptions, [])` sees zero queues, 
so the health tab reports `未发现消费组健康风险`.
   
   The sibling loader in the same file (`loadSubscriptions`) already tracks 
`subscriptionErrorByGroup` and renders `订阅一致性检查失败,当前保留上次检查结果`; `loadProgress` 
had no equivalent.
   
   Reproduction (regression test added with this report, 
`ConsumerPage.test.tsx`, `does not report a failed progress load as an offline 
consumer group`): open a group's detail with `/groups/{name}/progress` 
rejecting and the subscriptions request resolving. Before the fix the test 
finds `消费组不在线,暂无队列进度数据` in the progress panel; after the fix the failure notice 
`消费进度加载失败,无法判断消费组是否在线` is shown and the diagnosis additionally warns that the 
queue progress is missing.
   
   ## Impact
   
   On a transient broker/network failure the operator is told the consumer 
group is offline and healthy at the same time, with zero lag — the opposite of 
what a failing offset query usually indicates.
   
   ## Expected behavior
   
   A failed progress read is surfaced as unavailable: the progress tab states 
that the queue progress could not be loaded instead of claiming the group is 
offline, and the health diagnosis marks itself as incomplete rather than 
healthy.
   
   ## Related work
   
   - The subscription path in the same file keeps an error flag per instance 
and group and renders it instead of the empty text (`consumer.tsx`): this 
report is the missing counterpart for the progress path.
   - #4258 (offline and broadcast groups returning 502) covers the server-side 
grading of genuinely offline groups; it does not cover a failed read rendered 
as an empty result in the web UI.
   
   ## PR
   
   Fix incoming.
   


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