From 59641d7987a2de4db214fa24beaf98983ce940c3 Mon Sep 17 00:00:00 2001 From: Lorenzo Blasa Date: Thu, 9 Dec 2021 06:09:22 -0800 Subject: [PATCH] Do not reject promise for sendExpectResponse invokations Summary: On Flipper Desktop, rawCall uses sendExpectResponse from the client connection. RSocket only rejects the promise if there's an error in the transport layer and thus is unable to send data over the wire. WebSocket sends without errors as errors will always be reported via a different callback api. Having said that, WebSocket client connections were rejecting the promise for a valid client response that contained an error instead of success, which in this specific case is expected. The solution is to always resolve the promise with the response and let the Client interpret the response accordingly. Changelog: Fixes an issue whereas client errors were erroneously disconnecting a client from the Desktop side Reviewed By: aigoncharov Differential Revision: D32983969 fbshipit-source-id: 4215d9234235a9e2035b1d743c317ebdf2f656a2 --- .../src/comms/SecureServerWebSocket.tsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/desktop/flipper-server-core/src/comms/SecureServerWebSocket.tsx b/desktop/flipper-server-core/src/comms/SecureServerWebSocket.tsx index 9cff1f421..a5531f949 100644 --- a/desktop/flipper-server-core/src/comms/SecureServerWebSocket.tsx +++ b/desktop/flipper-server-core/src/comms/SecureServerWebSocket.tsx @@ -89,16 +89,10 @@ class SecureServerWebSocket extends ServerWebSocket { if (!callbacks) { return; } - - if (parsedMessage.success !== undefined) { - callbacks.resolve({ - ...parsedMessage, - length: rawMessage.length, - }); - return; - } - - callbacks.reject(parsedMessage.error); + callbacks.resolve({ + ...parsedMessage, + length: rawMessage.length, + }); return; }