title | description |
---|---|
isTriggerError() |
Use this function if you're using a `try/catch` block to catch errors. |
A regular try/catch
block on its own won't work as expected with Tasks. Internally runTask()
throws some special errors to control flow execution. This is necessary to deal with resumability, serverless timeouts, and retrying Tasks.
If this function returns true
you must rethrow the error. If it returns false
you can handle the error as you normally would.
You have two options:
- Use a regular
try/catch
block andisTriggerError()
as documented on this page. - Use the io.try() function.
You must rethrow the error if this function returns true
.
client.defineJob({
id: "get-repo-info",
name: "GitHub get repo info",
version: "0.1.0",
integrations: { github },
trigger: eventTrigger({
name: "repo.info",
schema: z.object({
owner: z.string(),
repo: z.string(),
}),
}),
run: async (payload, io, ctx) => {
//try
try {
return await io.github.getRepo("get-repo", {
owner: payload.owner,
repo: payload.repo,
});
} catch (error) {
//if it is a TriggerError you must rethrow the error
if (isTriggerError(error)) {
throw error;
}
//do whatever you want when an error occurs
return {
success: false as const,
error,
};
}
},
});