diff --git a/driver/lib/sessions/ios.ts b/driver/lib/sessions/ios.ts index 523fc220..405c48f4 100644 --- a/driver/lib/sessions/ios.ts +++ b/driver/lib/sessions/ios.ts @@ -95,11 +95,14 @@ export const getObservatoryWsUri = async ( destroyCommChannel(); localSocket.destroy(); }); + remoteSocket.on('error', (e) => log.debug(e)); + localSocket.once(`end`, destroyCommChannel); localSocket.once(`close`, () => { destroyCommChannel(); remoteSocket.destroy(); }); + localSocket.on('error', (e) => log.warn(e.message)); localSocket.pipe(remoteSocket); remoteSocket.pipe(localSocket); }); @@ -111,6 +114,7 @@ export const getObservatoryWsUri = async ( try { await listeningPromise; } catch (e) { + flutterDriver.localServer = null; throw new Error(`Cannot listen on the local port ${localPort}. Original error: ${e.message}`); } @@ -118,6 +122,7 @@ export const getObservatoryWsUri = async ( process.on(`beforeExit`, () => { flutterDriver.localServer?.close(); + flutterDriver.localServer = null; }); return urlObject.toJSON(); }; diff --git a/driver/lib/sessions/observatory.ts b/driver/lib/sessions/observatory.ts index fa9706d9..7b83316d 100644 --- a/driver/lib/sessions/observatory.ts +++ b/driver/lib/sessions/observatory.ts @@ -72,7 +72,7 @@ export const connectSocket = async ( // Add an 'error' event handler for the client socket const onErrorListener = (ex: Error) => { - log.error(JSON.stringify(ex)); + log.error(`Connection to ${dartObservatoryURL} got an error: ${ex.message}`); removeListenerAndResolve(null); }; socket.on(`error`, onErrorListener);