{"record":{"id":"6e5b694009f0f536","repo":"dbt-labs/dbt-core","slug":"no-configuration-changes-were-identified-on-t","errorCode":null,"errorMessage":"No configuration changes were identified on: `{{ target_relation }}`. Continuing.","messagePattern":"No configuration changes were identified on: `(.+?)\\}`\\. Continuing\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"crates/dbt-loader/src/dbt_macro_assets/dbt-snowflake/macros/materializations/dynamic_table.sql","lineNumber":51,"sourceCode":"\n{% macro dynamic_table_get_build_sql(existing_relation, target_relation) %}\n\n    {% set full_refresh_mode = should_full_refresh() %}\n\n    -- determine the scenario we're in: create, full_refresh, alter, refresh data\n    {% 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) %}","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/dynamic_table.sql#L33-L69","documentation":"For Snowflake dynamic tables, dbt compares the existing dynamic table's configuration against the model config to compute required changes. If `snowflake__get_dynamic_table_configuration_changes` returns none, there is nothing to alter, so dbt warns and continues with an empty build SQL (no-op) instead of running ALTER statements.","triggerScenarios":"Re-running `dbt run` on an unchanged dynamic table model where target lag, warehouse, and other dynamic-table config all match the existing relation.","commonSituations":"Full-refresh-style reruns in CI on unchanged dynamic tables; state:modified false positives; config values that serialize identically despite seeming different (e.g. re-applied same target_lag).","solutions":["No action needed — this is informational; the dynamic table is already up to date","Exclude unchanged dynamic tables from runs with `dbt build --select state:modified+`","If you expected a change to be applied, verify the model config actually differs from the deployed dynamic table (target_lag, warehouse)"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# before running, check whether the dynamic table config actually changed\ndef config_changed(model_config, existing):\n    keys = ['target_lag', 'snowflake_warehouse']\n    return any(model_config.get(k) != existing.get(k) for k in keys)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use state:modified selection so unchanged dynamic tables are skipped instead of warning","Log this warning as info in log parsing — it means the table is already correct","If a change was expected, diff model config vs deployed dynamic table (SHOW DYNAMIC TABLES)","Keep target_lag/warehouse values in sync between YAML and IaC to avoid spurious diffing"],"tags":["snowflake","dynamic-table","no-op","jinja"],"backgroundTag":"invalid-config-value","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"}