{"record":{"id":"9266c467336cbd07","repo":"dbt-labs/dbt-core","slug":"configuration-changes-were-identified-and-on-conf-9266c4","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/dynamic_table.sql","lineNumber":57,"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_dynamic_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_dynamic_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_dynamic_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{% macro dynamic_table_execute_no_op(relation) %}\n    {% do store_raw_result(","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-loader/src/dbt_macro_assets/dbt-snowflake/macros/materializations/dynamic_table.sql#L39-L75","documentation":"This is a compiler-time warning emitted by the Snowflake dynamic table materialization in dbt. When a dynamic table's rendered configuration differs from the existing relation, dbt compares them; if `on_configuration_change` is set to `continue`, dbt skips rebuilding/altering the table (build_sql is left empty) and warns instead of applying or failing. It indicates your model config changed but the change was deliberately not applied.","triggerScenarios":"Running `dbt run` on a Snowflake model materialized as dynamic_table whose config (e.g. target_lag, warehouse) changed since the last build, with `on_configuration_change='continue'` in the model config.","commonSituations":"Teams set `on_configuration_change='continue'` to avoid full rebuilds in CI, then forget that config edits are silently skipped; staging vs prod differences in config cause repeated warnings.","solutions":["Set `on_configuration_change='apply'` in the model config to let dbt run ALTER statements for the detected changes","Set `on_configuration_change='fail'` if you want the run to stop loudly instead of silently continuing","Manually apply the config change (ALTER DYNAMIC TABLE ... or full refresh with `dbt run --full-refresh`)","If no config actually changed, inspect `configuration_changes` detection (snowflake__get_dynamic_table_configuration_changes) for false positives from state parsing"],"exampleFix":"// before\n{{ config(materialized='dynamic_table', on_configuration_change='continue', target_lag='1 hour') }}\n// after\n{{ config(materialized='dynamic_table', on_configuration_change='apply', target_lag='1 hour') }}","handlingStrategy":"validation","validationCode":"// before running, check the model's config in schema.yml or the model file\n// if the model config drifted and on_configuration_change is 'continue', expect a skip\nconst cfg = model.config;\nif (cfg.on_configuration_change === 'continue') {\n  console.warn(`Config changes on ${cfg.materialized} model will NOT be applied; set 'apply' or 'fail'.`);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Default new dynamic table models to on_configuration_change='apply'","Use on_configuration_change='fail' in CI so config drift is never silently skipped","Grep the project for on_configuration_change='continue' during config-change reviews","Follow up 'continue' warnings with a --full-refresh run to reconcile state"],"tags":["snowflake","dbt","materialization","configuration-change"],"backgroundTag":"deprecated-api-usage","analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}