Streamlit in Snowflake: New Streamlits default to container runtime (Pending)¶
Attention
This behavior change is in the 2026_06 bundle.
For the current status of the bundle, refer to Bundle history.
When this behavior change bundle is enabled, new Streamlit in Snowflake
apps created without specifying a runtime use the SYSTEM$ST_CONTAINER_RUNTIME_PY3_11 container
runtime by default. Previously, omitting RUNTIME_NAME from a CREATE STREAMLIT command
defaulted to SYSTEM$WAREHOUSE_RUNTIME (warehouse runtime). Both runtimes continue to be
supported.
This change does not apply to Government and China region accounts, where the container runtime is not available. Streamlit in Snowflake apps created by Native Applications are also excluded; Native Applications continue to default to warehouse runtime when no runtime is specified.
- Before the change:
A CREATE STREAMLIT command without an explicit
RUNTIME_NAMEcreates a warehouse-runtime app:- After the change:
When the 2026_06 behavior change bundle is enabled in your account, the same command creates a container-runtime app using
SYSTEM$ST_CONTAINER_RUNTIME_PY3_11:Container-runtime apps require a compute pool. If you do not include a
COMPUTE_POOLclause, Snowflake uses the account-level default configured through theDEFAULT_STREAMLIT_COMPUTE_POOLaccount parameter, provided your primary role hasUSAGEon that pool. If no default is configured, you must specifyCOMPUTE_POOLexplicitly.To continue using warehouse runtime, specify
RUNTIME_NAMEexplicitly:
How to update your code¶
Existing Streamlit in Snowflake apps are not affected. Only new CREATE STREAMLIT commands issued after the
bundle is enabled. For all of the failures listed below, you can also resolve them by adding
RUNTIME_NAME = 'SYSTEM$WAREHOUSE_RUNTIME' to opt back into warehouse runtime instead.
If your statements use features specific to warehouse runtime, they will fail after the bundle is enabled. The table below lists each failure and how to resolve it. To migrate existing apps proactively, see Migrating between runtime environments.
| Error | Cause | Resolution |
|---|---|---|
STREAMLIT_NO_IMPORTS_CONTAINER_RUNTIME | IMPORTS clause is present. The IMPORTS property is only valid for warehouse runtime. | Remove the IMPORTS clause and place package dependencies in a requirements.txt or pyproject.toml file in the app’s stage. |
STREAMLIT_NO_EXECUTION_MODE_CONTAINER_RUNTIME | EXECUTE AS clause is present. Caller’s-rights and owner’s-rights execution modes are not supported on container runtime. | Remove the EXECUTE AS clause, or specify RUNTIME_NAME = 'SYSTEM$WAREHOUSE_RUNTIME' to keep the required execution mode. |
INVALID_PROPERTY for RUNTIME_NAME or COMPUTE_POOL | SPCS is not enabled on the account, so both properties are unrecognized. | Contact your Snowflake account team to enable SPCS, or specify RUNTIME_NAME = 'SYSTEM$WAREHOUSE_RUNTIME'. |
STREAMLIT_COMPUTE_POOL_NOT_SET | No compute pool was specified and no account-level default is configured. | Add COMPUTE_POOL = '<pool_name>' to the statement, or ask an admin to set the DEFAULT_STREAMLIT_COMPUTE_POOL account parameter. |
STREAMLIT_VALIDATION_FAILURE_NO_USAGE_ON_COMPUTE_POOL | The Streamlit owner role lacks USAGE on the compute pool. | Run GRANT USAGE ON COMPUTE POOL <pool_name> TO ROLE <owner_role>. |
STREAMLIT_VALIDATION_FAILURE_NO_USAGE_ON_COMPUTE_POOL_PDB | For Personal Database Streamlits: the owner UBAC role (USER$<username>) lacks USAGE on the compute pool. | Grant the user a role that has USAGE on the compute pool, or grant USAGE on the pool to a role the user already holds. |
STREAMLIT_COMPUTE_POOL_NO_AUTO_RESUME | The compute pool has auto-resume disabled; container Streamlits require auto-resume. | Run ALTER COMPUTE POOL <pool_name> SET AUTO_RESUME = TRUE, or use a pool that already has auto-resume enabled. |
Ref: 2342