{"record":{"id":"2a72ec3d1d4b4198","repo":"dbt-labs/dbt-core","slug":"configuration-changes-were-identified-and-on-conf-2a72ec","errorCode":null,"errorMessage":"Configuration changes were identified and `on_configuration_change` was set to `continue` for `{{ target_relation }}`","messagePattern":"Configuration changes were identified and `on_configuration_change` was set to `continue` for `(.+?)\\}`","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"crates/dbt-loader/src/dbt_macro_assets/dbt-snowflake/macros/materializations/interactive_table.sql","lineNumber":51,"sourceCode":"    {% if existing_relation is none %}\n        {% set build_sql = get_create_sql(target_relation, sql) %}\n    {% elif full_refresh_mode or not existing_relation.is_interactive_table %}\n        {% set build_sql = get_replace_sql(existing_relation, target_relation, sql) %}\n    {% else %}\n\n        {#- get config options -#}\n        {% set on_configuration_change = config.get('on_configuration_change', 'apply') %} {# DIVERGENCE: core does not default to `apply` here because it sets it elsewhere in the Python code #}\n        {% set configuration_changes = snowflake__get_interactive_table_configuration_changes(existing_relation, config) %}\n\n        {% if configuration_changes is none %}\n            {% set build_sql = '' %}\n            {{ exceptions.warn(\"No configuration changes were identified on: `\" ~ target_relation ~ \"`. Continuing.\") }}\n\n        {% elif on_configuration_change == 'apply' %}\n            {% set build_sql = snowflake__get_alter_interactive_table_as_sql(existing_relation, configuration_changes, target_relation, sql) %}\n        {% elif on_configuration_change == 'continue' %}\n            {% set build_sql = '' %}\n            {{ exceptions.warn(\"Configuration changes were identified and `on_configuration_change` was set to `continue` for `\" ~ target_relation ~ \"`\") }}\n        {% elif on_configuration_change == 'fail' %}\n            {{ exceptions.raise_fail_fast_error(\"Configuration changes were identified and `on_configuration_change` was set to `fail` for `\" ~ target_relation ~ \"`\") }}\n\n        {% else %}\n            {#- this only happens if the user provides a value other than `apply`, 'continue', 'fail' -#}\n            {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario: `\" ~ on_configuration_change ~ \"`\") }}\n\n        {% endif %}\n\n    {% endif %}\n\n    {% do return(build_sql) %}\n\n{% endmacro %}\n\n\n-- funcsign: (relation) -> string\n{% macro interactive_table_execute_no_op(relation) %}","sourceCodeStart":33,"sourceCodeEnd":69,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-loader/src/dbt_macro_assets/dbt-snowflake/macros/materializations/interactive_table.sql#L33-L69","documentation":"This warning is emitted by the Snowflake interactive table materialization when the model's configuration differs from the existing relation but `on_configuration_change` is set to `continue`. dbt leaves build_sql empty and warns, meaning the config drift is acknowledged but intentionally not applied. The table keeps its current configuration.","triggerScenarios":"Running `dbt run` on a Snowflake interactive_table model whose rendered config changed (e.g. cluster_by, target_lag) with `on_configuration_change='continue'` configured.","commonSituations":"CI pipelines configured with `continue` to avoid costly ALTERs silently skip config updates; developers confused why config changes never take effect on the table.","solutions":["Change `on_configuration_change` to `apply` so dbt issues `snowflake__get_alter_interactive_table_as_sql` ALTER statements","Change it to `fail` to make config drift break the run instead of being skipped","Apply the change manually with an ALTER INTERACTIVE TABLE statement, or rebuild with `--full-refresh`","Confirm the intended config change is in the right model/ENV (staging vs prod discrepancy)"],"exampleFix":"// before\n{{ config(materialized='interactive_table', on_configuration_change='continue') }}\n// after\n{{ config(materialized='interactive_table', on_configuration_change='apply') }}","handlingStrategy":"validation","validationCode":"const cfg = model.config;\nif (cfg.materialized === 'interactive_table' && cfg.on_configuration_change === 'continue') {\n  console.warn('Config drift will be acknowledged but NOT applied to the interactive table.');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer 'apply' for interactive tables unless ALTER cost is prohibitive","Use 'fail' in CI pipelines to surface config drift as a hard failure","Audit configs after promotions between environments","Document the on_configuration_change choice per model in schema.yml descriptions"],"tags":["snowflake","dbt","materialization","configuration-change"],"backgroundTag":"invalid-state-transition","analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}