# Job errors (recipe execution errors)
Job errors, also known as recipe execution errors, usually occur when a trigger event has been found, and a job is being processed, therefore typically showing up as recipe job errors. An exception to this is trigger errors, which occur when the recipe fails to retrieve any trigger events, and therefore does not create any jobs.
# Trigger errors
Trigger errors occur when the recipe tries to retrieve trigger events by polling the trigger app, but fails to fetch trigger events successfully. As no trigger event data was retrieved, the recipe does not create a job in the first place.
The following table details the various reasons for trigger errors, and how we can resolve them.
|Trigger error reason||What happens?||How to resolve|
|App connection becomes invalid and recipe is unable to connect successfully to the trigger app to fetch trigger events||Usually results in an 401 unauthorized error message||Reconnect successfully to trigger app|
|Connected user does not have the right permissions to fetch trigger events||Usually results in an 403 forbidden message||Update the connected user's permissions to provide required read/write permission scopes|
|Recipe makes an invalid API call, for example, due to schema changes such as field deletion in the app that wasn't reflected in the recipe||Usually results in schema errors||Carry out a schema refresh for the recipes with schema errors|
|Recipe makes an API call that times out while waiting for trigger events to be fetched. This is usually transient, i.e. the API server might be experiencing temporary downtime||Usually results in a timeout error||If transient, you should stop getting the error after a while. If error keeps occurring, check the API uptime status of the app that the recipe keeps failing at, or reach out to us.|
|Trigger filters are logically incorrect, for example, a null value is checked against an integer, a string is checked against a number.||Usually results in a formula error||Trigger filters will need to be fixed before the recipe can run properly. Learn more about valid trigger filters here.|
# Run-time formula errors
Every input field (except for list input fields) can be toggled between text and formula mode. Formulas that didn't throw any design-time errors when the recipe was started can still throw run-time errors during a job, when actual data is being processed by the recipe. some reasons for run-time errors are:
- datapill had no value and was
nil, and the formula acting on it doesn't work on null values
- formula tries to execute invalid operation that was not caught at design time, for example, dividing a number by a string (text)
- formula was used on a datapill of the wrong data type, for example, using
true?formula on an array datapill
# Missing required fields at run-time
Triggers and actions typically need configuration to be useful in a recipe. For example, to update a Zendesk organization, we need, at a minimum, the ID of the organization to update. Therefore, that's a required field in the recipe. Required input fields that didn't throw any design-time errors when the recipe was started, because the field had a datapill as input, can still throw run-time errors if the datapill had no value during the job, when actual data is being processed by the recipe.
Whenever the recipe carries out the trigger (to request for a list of trigger events from the trigger app), or an action (to carry out the action in the action app), Workato is sending a request to the app and waiting for a response back.
Some reasons for a job timeout would be:
- the app might take too long to respond to Workato, and the trigger or action will raise a timeout error after it has waited for a certain amount of time
- the job might be taking too long to carry out, and the job raises a timeout error
# Passing wrong data types into input fields
Sometimes, the datapill used for an input field have a data type which is not expected by the input field, for example, we pass in a string (
"12.50") into a input field expecting a number (
12.50). This might not be caught at design-time, but the app we provide this string to might throw an error when it receives unexpected data types.
To resolve this, you can use formulas for data type conversions by referring to the documentation for strings, numbers, dates, or lists.