@@ -143,7 +143,21 @@ export class TaskExecutor {
143143 ) ;
144144 }
145145
146- parsedPayload = await this . #parsePayload( payloadResult ) ;
146+ const [ parsePayloadError , parsedPayloadResult ] = await tryCatch (
147+ this . #parsePayload( payloadResult )
148+ ) ;
149+
150+ if ( parsePayloadError ) {
151+ recordSpanException ( span , parsePayloadError ) ;
152+ return this . #internalErrorResult(
153+ execution ,
154+ TaskRunErrorCodes . TASK_INPUT_ERROR ,
155+ parsePayloadError ,
156+ true
157+ ) ;
158+ }
159+
160+ parsedPayload = parsedPayloadResult ;
147161
148162 lifecycleHooks . registerOnWaitHookListener ( async ( wait ) => {
149163 await this . #callOnWaitFunctions( wait , parsedPayload , ctx , initOutput , signal ) ;
@@ -1369,7 +1383,12 @@ export class TaskExecutor {
13691383 } ) ;
13701384 }
13711385
1372- #internalErrorResult( execution : TaskRunExecution , code : TaskRunErrorCodes , error : unknown ) {
1386+ #internalErrorResult(
1387+ execution : TaskRunExecution ,
1388+ code : TaskRunErrorCodes ,
1389+ error : unknown ,
1390+ skippedRetrying ?: boolean
1391+ ) {
13731392 return {
13741393 ok : false ,
13751394 id : execution . run . id ,
@@ -1384,6 +1403,7 @@ export class TaskExecutor {
13841403 : undefined ,
13851404 stackTrace : error instanceof Error ? error . stack : undefined ,
13861405 } ,
1406+ skippedRetrying,
13871407 } satisfies TaskRunExecutionResult ;
13881408 }
13891409
0 commit comments