File tree Expand file tree Collapse file tree
runpod/serverless/modules Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -353,17 +353,28 @@ def _background_job_runner(self):
353353
354354 def run_async_generator (gen ):
355355 results = []
356+ error_encountered = None
356357 async def consume ():
358+ nonlocal error_encountered
357359 async for stream_output in gen :
358- results .append (stream_output ["output" ])
360+ # Check if this is an error output
361+ if stream_output .get ("status" ) == "error" :
362+ error_encountered = stream_output .get ("error" , "Unknown error" )
363+ break
364+ # Only append if there's an output key
365+ if "output" in stream_output :
366+ results .append (stream_output ["output" ])
359367 loop = asyncio .new_event_loop ()
360368 asyncio .set_event_loop (loop )
361369 loop .run_until_complete (consume ())
362370 loop .close ()
363- return results
371+
372+ if error_encountered :
373+ return {"error" : error_encountered }
374+ return {"output" : results }
364375
365- generator_output = run_job_generator (self .config ["handler" ], job .getDictCopy ())
366- job_output = { "output" : run_async_generator ( generator_output )}
376+ generator_result = run_async_generator ( run_job_generator (self .config ["handler" ], job .getDictCopy () ))
377+ job_output = generator_result
367378 else :
368379 loop = asyncio .new_event_loop ()
369380 asyncio .set_event_loop (loop )
You can’t perform that action at this time.
0 commit comments