diff --git a/.changeset/lovely-coats-draw.md b/.changeset/lovely-coats-draw.md new file mode 100644 index 0000000000..00c5b39909 --- /dev/null +++ b/.changeset/lovely-coats-draw.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/core": patch +--- + +fix: prevent ERR_IPC_CHANNEL_CLOSED errors from causing an unhandled exception on TaskRunProcess diff --git a/packages/cli-v3/src/executions/taskRunProcess.ts b/packages/cli-v3/src/executions/taskRunProcess.ts index 6be1488aee..098b0f261c 100644 --- a/packages/cli-v3/src/executions/taskRunProcess.ts +++ b/packages/cli-v3/src/executions/taskRunProcess.ts @@ -233,6 +233,7 @@ export class TaskRunProcess { }); this._child.on("exit", this.#handleExit.bind(this)); + this._child.on("error", this.#handleError.bind(this)); this._child.stdout?.on("data", this.#handleLog.bind(this)); this._child.stderr?.on("data", this.#handleStdErr.bind(this)); @@ -321,6 +322,10 @@ export class TaskRunProcess { this._ipc?.send("RESOLVE_WAITPOINT", { waitpoint }); } + #handleError(error: Error) { + logger.debug("child process error", { error, pid: this.pid }); + } + async #handleExit(code: number | null, signal: NodeJS.Signals | null) { logger.debug("handling child exit", { code, signal, pid: this.pid });