diff --git a/src/node/main.ts b/src/node/main.ts index 4ae3ce5e503e..4a53de9d84cc 100644 --- a/src/node/main.ts +++ b/src/node/main.ts @@ -52,12 +52,17 @@ export const runCodeCli = async (args: DefaultedArgs): Promise => { try { await spawnCli(await toCodeArgs(args)) + // Rather than have the caller handle errors and exit, spawnCli will exit + // itself. Additionally, it does this on a timeout set to 0. So, try + // waiting for VS Code to exit before giving up and doing it ourselves. + await new Promise((r) => setTimeout(r, 1000)) + logger.warn("Code never exited") + process.exit(0) } catch (error: any) { + // spawnCli catches all errors, but just in case that changes. logger.error("Got error from Code", error) process.exit(1) } - - process.exit(0) } export const openInExistingInstance = async (args: DefaultedArgs, socketPath: string): Promise => {