{"record":{"id":"ff89e252185afcb6","repo":"dbt-labs/dbt-core","slug":"describe-dynamic-table-is-not-supported-by-the","errorCode":null,"errorMessage":"describe_dynamic_table is not supported by the {} adapter","messagePattern":"describe_dynamic_table is not supported by the (.+?) adapter","errorType":"exception","errorClass":"minijinja::Error","httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/adapter/adapter_impl.rs","lineNumber":1516,"sourceCode":"                    })?;\n                    AgateTable::from_record_batch(Arc::new(new_batch))\n                } else {\n                    table\n                };\n\n                Ok(Value::from(ValueMap::from([(\n                    Value::from(\"dynamic_table\"),\n                    Value::from_object(table),\n                )])))\n            }\n            Postgres | Bigquery | Databricks | Redshift | Salesforce | Spark | DuckDB\n            | LakeCompute | Fabric | ClickHouse | Exasol | Starburst | Athena | Trino\n            | Datafusion | Dremio | Oracle => {\n                let err = format!(\n                    \"describe_dynamic_table is not supported by the {} adapter\",\n                    adapter_type\n                );\n                Err(minijinja::Error::new(\n                    minijinja::ErrorKind::InvalidOperation,\n                    err,\n                ))\n            }\n        }\n    }\n\n    /// `SHOW INTERACTIVE TABLES` has no transient status, so unlike `describe_dynamic_table`\n    /// this never runs a second `SHOW TABLES` to fold `transient` in.\n    ///\n    /// SnowflakeAdapter https://github.com/dbt-labs/dbt-adapters/blob/2d27c26df1a4b71144cd4585cfdefac39cd311bc/dbt-snowflake/src/dbt/adapters/snowflake/impl.py#L739-L775\n    pub fn describe_interactive_table(\n        &self,\n        state: &State,\n        conn: &'_ mut dyn Connection,\n        relation: &Arc<dyn BaseRelation>,\n        token: CancellationToken,\n    ) -> Result<Value, minijinja::Error> {","sourceCodeStart":1498,"sourceCodeEnd":1534,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/adapter/adapter_impl.rs#L1498-L1534","documentation":"describe_dynamic_table is only implemented for a subset of adapter types. For adapters like Snowflake-alternatives in the excluded list (LakeCompute, Fabric, ClickHouse, Exasol, Starburst, Athena, Trino, Datafusion, Dremio, Oracle, etc.) the method deliberately raises an InvalidOperation error naming the adapter. It signals an unsupported operation, not a data problem.","triggerScenarios":"Calling describe_relation (which dispatches to describe_dynamic_table) against a relation of type dynamic table while connected with one of the unsupported adapter types.","commonSituations":"Porting dbt projects that use Snowflake dynamic tables onto ClickHouse/Trino/Athena etc.; generic macros that call describe_dynamic_table without checking adapter type; running the same model suite across warehouses.","solutions":["Guard the call: only invoke describe_dynamic_table when adapter_type supports it (e.g. Snowflake).","Provide a fallback in the macro for unsupported adapters, or make the dynamic-table feature Snowflake-only.","Wrap the call in a try/catch and degrade gracefully if the model must run on multiple warehouses.","If support is needed, implement describe_dynamic_table for that adapter."],"exampleFix":"-- before\n{% set info = describe_dynamic_table(relation) %}\n\n// after\n{% if adapter_type() == 'snowflake' %}\n  {% set info = describe_dynamic_table(relation) %}\n{% else %}\n  {% set info = none %}\n{% endif %}","handlingStrategy":"fallback","validationCode":"{% set SUPPORTED = ['snowflake'] %}\n{% set ok = adapter_type() in SUPPORTED %}","typeGuard":"fn supports_dynamic_tables(adapter_type: &str) -> bool {\n    matches!(adapter_type, \"snowflake\")\n}","tryCatchPattern":"{% try %}\n  {% set info = describe_dynamic_table(relation) %}\n{% except %}\n  {% set info = none %}\n{% endtry %}","preventionTips":["Gate dynamic-table macros behind adapter_type checks","Keep warehouse-specific features isolated to Snowflake-only models","Test model suites on every target warehouse to catch unsupported calls"],"tags":["adapter","unsupported-operation","jinja","dbt"],"backgroundTag":"unsupported-operation","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"}