Dynamic table states¶

A dynamic table can be in any of several states during its lifecycle. The following table describes the various dynamic table lifecycle states:

State

Scheduling state

Description

Refresh State

Suspend reason code

INITIALIZING

RUNNING

Snowflake is initializing the dynamic table and scheduling its initial refresh. Also refer to Queries Executed While a Dynamic Table is Initializing.

Not yet refreshed

ACTIVE

RUNNING

Dynamic table refreshes are running normally.

Succeeded

ACTIVE

RUNNING

Last refresh was skipped. Future refreshes will be attempted at the normal rate. To prevent refreshes from being skipped, revise the target lag and warehouse sizes.

SKIPPED

IMPACTED

RUNNING

Unable to refresh. One or more of the upstream dynamic tables has failed to refresh. When the upstream problem is corrected, refreshes will automatically resume.

SKIPPED

IMPACTED

SUSPENDED

Skipped because an upstream dynamic table is suspended. When the upstream dynamic table is resumed, refreshes will automatically resume.

UPSTREAM_SUSPENDED

SUSPENDED

SUSPENDED

Skipped because the dynamic table was manually suspended. When the dynamic table is manually resumed, refreshes will automatically resume.

USER_SUSPENDED

SUSPENDED

SUSPENDED

A previously FAILING/SUSPENDED dynamic table was successfully manually refreshed. The dynamic table must be manually resumed.

SUSPENDED_DUE_TO_ERRORS

FAILING

RUNNING

Last refresh had an error, such as the dynamic table definition becoming invalid or temporary infrastructure issues. Additional refreshes will be attempted at the regular refresh intervals.

FAILED or CANCELLED

FAILING

SUSPENDED

Last five (5) refreshes failed. The dynamic table is now auto-suspended and will not be refreshed until manually resumed.

SUSPENDED_DUE_TO_ERRORS

Queries executed while a dynamic table is initializing

Note

Queries on initializing dynamic tables will return an error.

To avoid such errors, wait for the next scheduled refresh or use the ALTER DYNAMIC TABLE command to perform a manual refresh.

Suspended reason codes

code

Description

USER_SUSPENDED

Dynamic table suspended by user.

UPSTREAM_SUSPENDED

Dynamic table suspended because some of its inputs were suspended.

SUSPENDED_DUE_TO_ERRORS

Dynamic table suspended due to five (5) consecutive errors.

Note

A dynamic table is suspended if there are five or more continuous refresh errors. Dynamic tables suspended due to refresh errors are commonly referred to as Auto suspended because they were suspended by the system and not through user action.

If other dynamic tables depend on the suspended dynamic table, they are also suspended. SCHEDULING_STATE describes the current state of a dynamic table.

  • To view the scheduling state of the dynamic table, call the DYNAMIC_TABLE_GRAPH_HISTORY table function, and examine the SCHEDULING_STATE column.

Note

A dynamic table is suspended if the system observes five continuous refresh errors. Dynamic tables suspended due to refresh errors are commonly referred to as auto-suspended because they are suspended by the system and not through user action.

Any dynamic tables that depend on the suspended dynamic table are also suspended. SCHEDULING_STATE describes the current state of a dynamic table.

  • To view the scheduling state of the dynamic table, call the DYNAMIC_TABLE_GRAPH_HISTORY table function, and examine the SCHEDULING_STATE column.