diff --git a/lib/tunnelbroker/tunnelbroker-context.js b/lib/tunnelbroker/tunnelbroker-context.js --- a/lib/tunnelbroker/tunnelbroker-context.js +++ b/lib/tunnelbroker/tunnelbroker-context.js @@ -82,6 +82,8 @@ }: AnonymousInitializationMessage); } +let currentlyProcessedMessage: ?Promise = null; + function TunnelbrokerProvider(props: Props): React.Node { const { children, shouldBeClosed, onClose, secondaryTunnelbrokerConnection } = props; @@ -277,11 +279,14 @@ return; } const peerToPeerMessage: PeerToPeerMessage = rawPeerToPeerMessage; - void peerToPeerMessageHandler( - peerToPeerMessage, - identityClient, - message.messageID, - ); + currentlyProcessedMessage = (async () => { + await currentlyProcessedMessage; + await peerToPeerMessageHandler( + peerToPeerMessage, + identityClient, + message.messageID, + ); + })(); } else if ( message.type === tunnelbrokerMessageTypes.MESSAGE_TO_DEVICE_REQUEST_STATUS