Aias00 opened a new issue, #7716: URL: https://github.com/apache/shenyu/issues/7716
## Current behavior The WebSocket client places `SystemInfoUtils.getSystemInfo()` (an already serialized JSON string) inside its report. Admin extracts that string and serializes it again for `instanceInfo`. HTTP long polling likewise reads JSON from a header and calls `toJson` on the string. Independent heartbeat reports carry the original JSON string directly. Consequently the `instanceInfo` field has incompatible encodings across reporting channels. Parsing it once yields a string on the sync paths and an object on the direct path; the dashboard's one-pass JSON formatting displays escaped JSON rather than consistent structured information. ## Evidence - [WebSocket report producer](https://github.com/apache/shenyu/blob/66d7d954ca37d651a5ad916f988a8081157a7ab4/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClient.java#L424) - [WebSocket receiver](https://github.com/apache/shenyu/blob/66d7d954ca37d651a5ad916f988a8081157a7ab4/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/websocket/WebsocketCollector.java#L196) - [HTTP receiver](https://github.com/apache/shenyu/blob/66d7d954ca37d651a5ad916f988a8081157a7ab4/shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/http/HttpLongPollingDataChangedListener.java#L141) ## Acceptance criteria - [ ] Define one JSON encoding contract for the instance information field across all three reporting channels. - [ ] Normalize once at a shared boundary or fix the producers/receivers consistently; avoid heuristic decoding loops. - [ ] Define compatibility for already persisted double-encoded values and older reporters. - [ ] Test equivalent information through WebSocket, HTTP sync and independent heartbeat, including missing/malformed information and dashboard rendering. - [ ] Preserve liveness reporting if optional information is invalid; expose diagnostics without logging sensitive payloads. Related: #7692 concerns metadata refresh and #7696 concerns type identity; neither fixes encoding. Source-inspection finding; no runtime reproduction was run during issue preparation. -- 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]
