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

   ### Before Creating the Bug Report
   
   - [x] I searched open/closed issues and pull requests for Aliyun catalog 
response handling, `ListRegions`, `ListInstances`, and `GetInstance`.
   - [x] I verified the behavior on current `master` 
(`987b748e8f4f421c5cd3c4c4e51a064cc7e59f18`).
   
   ### Problem
   
   `AliyunCatalogService` treats any normally completed SDK future as a 
successful cloud-catalog read and only inspects `data`. The pinned Aliyun 
RocketMQ 5.x SDK response bodies for `ListRegions`, `ListInstances`, and 
`GetInstance` all expose business-level `success`, `code`, and `message` fields.
   
   When those APIs return a decoded body with `success=false`, current behavior 
converts the provider failure into misleading catalog state:
   
   - `ListRegions`: returns an empty region list;
   - `ListInstances`: stops pagination and returns an empty/partial instance 
list;
   - `GetInstance`: turns the provider failure into `404 Aliyun instance not 
found`.
   
   ### Impact
   
   These paths drive credential-backed region selection, cloud-instance 
discovery, and instance onboarding. Permission, throttling, account, or 
provider-side business failures can therefore look like "no regions", "no 
instances", or "instance does not exist", sending operators toward the wrong 
diagnosis.
   
   ### Expected behavior
   
   A decoded catalog response body with `success != true` fails closed with a 
502-style `BusinessException`, retaining the provider `message`/`code` when 
available. A genuine successful response with empty/null data keeps the 
existing empty/not-found semantics. SDK exceptional completions remain mapped 
by `AliyunClientFactory`.
   
   ### Verification plan
   
   Add deterministic service tests for `ListRegions`, `ListInstances`, and 
`GetInstance` that return normally completed SDK responses with `success=false` 
and prove current code returns empty/not-found results. Then make those same 
responses fail closed while retaining the existing successful-empty and 
identifier-normalization behavior.
   
   This complements #4498/#4499 (Aliyun mutations) and #4500/#4504 (runtime 
provider reads); it covers the separate cloud-catalog/onboarding surface.
   
   AI-assisted source audit; the response contracts were verified against the 
pinned `alibabacloud-rocketmq20220801:5.0.8` jar.
   


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