{"record":{"id":"37c3661b99b5ad0d","repo":"dbt-labs/dbt-core","slug":"configuration-changes-were-identified-and-on-conf-37c366","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-databricks/macros/materializations/streaming_table.sql","lineNumber":45,"sourceCode":"    -- determine the scenario we're in: create, full_refresh, alter, refresh data\n    {% if existing_relation is none %}\n        {% set build_sql = get_create_streaming_table_as_sql(target_relation, sql) %}\n    {% elif full_refresh_mode or not existing_relation.is_streaming_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 = get_configuration_changes(existing_relation) %}\n        {% if configuration_changes is none %}\n            {{ log(\"REFRESHING STREAMING TABLE: \" ~ target_relation) }}\n            {% set build_sql = refresh_streaming_table(target_relation, sql) %}\n\n        {% elif on_configuration_change == 'apply' %}\n            {% set build_sql = get_alter_streaming_table_as_sql(target_relation, configuration_changes, sql, existing_relation, None, None) %}\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`, 'skip', 'fail'\n            {{ exceptions.raise_compiler_error(\"Unexpected configuration scenario\") }}\n\n        {% endif %}\n\n    {% endif %}\n\n    {% do return(build_sql) %}\n\n{% endmacro %}\n\n{% macro streaming_table_execute_build_sql(build_sql, existing_relation, target_relation, post_hooks) %}\n\n    -- `BEGIN` happens here:","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-loader/src/dbt_macro_assets/dbt-databricks/macros/materializations/streaming_table.sql#L27-L63","documentation":"Same family as the materialized-view variant: when a streaming table's configuration changes but `on_configuration_change` is `continue`, dbt skips applying the change (no ALTER/rebuild) and warns instead. The existing streaming table keeps its old definition while the model file reflects a new one.","triggerScenarios":"Running `dbt run` on a model with `materialized='streaming_table'` whose config differs from the deployed relation, with `on_configuration_change='continue'` configured.","commonSituations":"Editing a streaming table's target refresh interval or other Databricks streaming-table properties and expecting the change to land, while a 'continue' setting (often copied from a template) silently skips it.","solutions":["Set `on_configuration_change='apply'` in the streaming table's config so the ALTER runs.","Use `dbt run --full-refresh` once to recreate the streaming table with the new configuration.","Set `on_configuration_change='fail'` if you prefer the pipeline to stop and force an explicit decision.","If skipping is intentional, dismiss the warning; it confirms the change was not applied."],"exampleFix":"-- before\n{{ config(materialized='streaming_table', on_configuration_change='continue') }}\n-- after\n{{ config(materialized='streaming_table', on_configuration_change='apply') }}","handlingStrategy":"validation","validationCode":"# Before deploying streaming table changes:\nif config.on_configuration_change == 'continue' and config_changed:\n    raise ValueError('streaming_table config changed but on_configuration_change=continue; change will not be applied')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep streaming table configs under version control and review 'continue' settings during config edits.","Use --full-refresh intentionally when changing streaming table properties.","Document why 'continue' is set per model so future edits are not silently skipped."],"tags":["dbt","databricks","streaming-table","configuration"],"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-17T15:17:12.973Z"}