This section describes a methodical approach to troubleshooting tasks that do not run as expected.
In this Topic:
Task Did Not Run¶
Step 1: Verify the Task Did Not Run¶
Query the TASK_HISTORY table function to verify the task did not run. It is possible that the task ran successfully but the SQL statement in the task definition failed. In particular, note the scheduled and completed times, as well as any error code and message.
If the task has a parent task (in a tree of tasks), verify whether the parent task completed successfully.
Step 2: Verify the Task was Resumed¶
To resume an individual task, execute ALTER TASK … RESUME. To recursively enable all dependent tasks tied to a root task, query the SYSTEM$TASK_DEPENDENTS_ENABLE function rather than enabling each task individually.
While you are reviewing the task details, if the task has a schedule, also check the cron expression. Verify that at least one occurrence of the scheduled time has passed.
Step 3: Verify the Permissions Granted to the Task Owner¶
Verify the task owner (i.e. the role that has the OWNERSHIP privilege on the task) has the global EXECUTE TASK privilege (using SHOW GRANTS TO ROLE
role_name). This privilege is required to execute tasks.
If the role does not have the EXECUTE TASK privilege, assign the privilege as an account administrator (user with the ACCOUNTADMIN role), e.g.:
USE ROLE accountadmin; GRANT EXECUTE TASK ON ACCOUNT TO ROLE <role_name>;
Task Timed out or Exceeded the Schedule Window¶
There is a 60 minute default limit on a single run of a task. This limitation was implemented as a safeguard against non-terminating tasks. Query the TASK_HISTORY table function. If the task was canceled or exceeded the window scheduled for the task, the cause is often an undersized warehouse. Review the warehouse size and consider increasing it to fit within the schedule window or the one-hour limit.
Alternatively, consider increasing the timeout limit for the task by executing ALTER TASK … SET USER_TASK_TIMEOUT_MS = <num>.
A larger warehouse may not help if there are query parallelization issues. Consider looking at alternate ways to rewrite the SQL statement run by the task.