diff --git a/packages/payload/src/queues/config/types/taskTypes.ts b/packages/payload/src/queues/config/types/taskTypes.ts index 48edff68819..43df1c91d5e 100644 --- a/packages/payload/src/queues/config/types/taskTypes.ts +++ b/packages/payload/src/queues/config/types/taskTypes.ts @@ -127,7 +127,7 @@ export type RunInlineTaskFunction = Promise -export type ShouldRestoreFn = (args: { +export type TaskCallbackArgs = { /** * Input data passed to the task */ @@ -135,7 +135,10 @@ export type ShouldRestoreFn = (args: { job: Job req: PayloadRequest taskStatus: SingleTaskStatus -}) => boolean | Promise +} + +export type ShouldRestoreFn = (args: TaskCallbackArgs) => boolean | Promise +export type TaskCallbackFn = (args: TaskCallbackArgs) => Promise | void export type RetryConfig = { /** @@ -220,11 +223,11 @@ export type TaskConfig< /** * Function to be executed if the task fails. */ - onFail?: () => Promise | void + onFail?: TaskCallbackFn /** * Function to be executed if the task succeeds. */ - onSuccess?: () => Promise | void + onSuccess?: TaskCallbackFn /** * Define the output field schema - payload will generate a type for this schema. */ diff --git a/packages/payload/src/queues/errors/handleTaskError.ts b/packages/payload/src/queues/errors/handleTaskError.ts index 3366b0a15b5..4a92a4c4b21 100644 --- a/packages/payload/src/queues/errors/handleTaskError.ts +++ b/packages/payload/src/queues/errors/handleTaskError.ts @@ -47,8 +47,13 @@ export async function handleTaskError({ workflowConfig, } = error.args - if (taskConfig?.onFail) { - await taskConfig.onFail() + if (taskConfig?.onFail && taskStatus) { + await taskConfig.onFail({ + input: input!, + job, + req, + taskStatus, + }) } const errorJSON = { diff --git a/packages/payload/src/queues/operations/runJobs/runJob/getRunTaskFunction.ts b/packages/payload/src/queues/operations/runJobs/runJob/getRunTaskFunction.ts index aa9f1715675..82311fafc8e 100644 --- a/packages/payload/src/queues/operations/runJobs/runJob/getRunTaskFunction.ts +++ b/packages/payload/src/queues/operations/runJobs/runJob/getRunTaskFunction.ts @@ -181,8 +181,13 @@ export const getRunTaskFunction = ( output = taskHandlerResult.output } - if (taskConfig?.onSuccess) { - await taskConfig.onSuccess() + if (taskConfig?.onSuccess && taskStatus) { + await taskConfig.onSuccess({ + input: input!, + job, + req, + taskStatus, + }) } ;(job.log ??= []).push({