{"record":{"id":"bed763ecfd6b4deb","repo":"dbt-labs/dbt-core","slug":"no-configuration-changes-were-identified-on-t-bed763","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/interactive_table.sql","lineNumber":45,"sourceCode":"-- funcsign: (optional[relation], relation) -> string\n{% macro interactive_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 -#}\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_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) %}","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-loader/src/dbt_macro_assets/dbt-snowflake/macros/materializations/interactive_table.sql#L27-L63","documentation":"This is a warning emitted by the Snowflake interactive table materialization when dbt detects no configuration changes between the model's rendered config and the existing interactive table. The materialization short-circuits with an empty build_sql and warns via `exceptions.warn` instead of issuing any DDL. It is informational: nothing is wrong, dbt just found no ALTER to perform.","triggerScenarios":"Running `dbt run` on a Snowflake model materialized as interactive_table where `snowflake__get_interactive_table_configuration_changes(existing_relation, config)` returns none, meaning every config option (cluster_by, automatic_clustering, etc.) matches the existing relation.","commonSituations":"Re-running a model with unchanged config after a previous build; misreading the warning as an error when the table is actually already up to date.","solutions":["No action needed if the table is up to date — the run continues and build_sql is empty by design","If you expect changes to be detected, verify the model config values actually differ from the existing relation (SHOW INTERACTIVE TABLE / DESCRIBE)","If the state comparison is wrongly returning none, check that the relation exists in the cache and wasn't dropped out-of-band"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// verify the existing relation's config matches the model config before running\n// e.g. compare target_lag/warehouse against SHOW INTERACTIVE TABLE output\nconst drift = compareRelationConfig(existingRelation, modelConfig);\nif (drift.length === 0) {\n  console.log('No config drift; warning is expected and harmless.');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat this warning as informational — do not 'fix' it when the table is already up to date","Check the relation cache if you expected changes to be detected","Keep interactive table config in schema.yml so diffs are reviewable"],"tags":["snowflake","dbt","materialization","no-op"],"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"}