@@ -484,6 +484,8 @@ function dismissStaleJobs(jobEmitter: EventEmitter): MyEventEmitter {
484484 const emitter = new MyEventEmitter ( )
485485
486486 const jobsPromise = new JobsPromise ( )
487+ // Errors are already caught in the promises passed to add(), so use a no-op handler
488+ jobsPromise . setErrorHandler ( ( ) => { } )
487489
488490 jobEmitter . on ( 'end' , ( ) => jobsPromise . allSettled ( ) . then ( ( ) => emitter . emit ( 'end' ) ) )
489491 jobEmitter . on ( 'error' , ( err : Error ) => emitter . emit ( 'error' , err ) )
@@ -697,6 +699,11 @@ export default async function run(
697699 // AbortController to cancel all in-flight createAssembly calls when an error occurs
698700 const abortController = new AbortController ( )
699701
702+ // Set error handler before subscribing to events that might call add()
703+ jobsPromise . setErrorHandler ( ( err : unknown ) => {
704+ outputctl . error ( err as Error )
705+ } )
706+
700707 emitter . on ( 'job' , ( job : Job ) => {
701708 activeJobs . add ( job )
702709 const inPath = job . in ? ( ( job . in as fs . ReadStream ) . path as string | undefined ) : undefined
@@ -796,10 +803,6 @@ export default async function run(
796803 }
797804 } )
798805
799- jobsPromise . setErrorHandler ( ( err : unknown ) => {
800- outputctl . error ( err as Error )
801- } )
802-
803806 emitter . on ( 'error' , ( err : Error ) => {
804807 // Abort all in-flight createAssembly calls to ensure clean shutdown
805808 abortController . abort ( )
0 commit comments