diff --git a/apps/shared/src/json-rpc-gateway.ts b/apps/shared/src/json-rpc-gateway.ts index a138edbb1c2..4cc869f1519 100644 --- a/apps/shared/src/json-rpc-gateway.ts +++ b/apps/shared/src/json-rpc-gateway.ts @@ -185,8 +185,19 @@ export class JsonRpcGatewayClient { } close(): void { - this.socket?.close() - this.socket = null + const socket = this.socket + + if (!socket) { + return + } + + try { + socket.close() + } finally { + this.socket = null + this.setState('closed') + this.rejectAllPending(new Error(this.options.closedErrorMessage)) + } } on
(type: GatewayEventName, handler: (event: GatewayEvent
) => void): () => void {