This page documents platform limitations of Microsoft Fabric that affect dbt models. These are not adapter bugs — they are constraints of the underlying compute engines that cannot be worked around with macro overrides.
Fabric Data Warehouse cannot persist table/column descriptions via DDL. Use Purview integration instead.
Materialized views
Not supported
Fabric Data Warehouse does not support CREATE MATERIALIZED VIEW. Use tables with incremental materialization.
Functions: aggregate (UDAF)
Not supported
T-SQL does not have CREATE AGGREGATE. Only scalar functions are supported.
Functions: Python UDF
Not supported
Cannot create Python UDFs in Data Warehouse. Use Python models via Livy instead.
Functions: volatility
Not applicable
T-SQL scalar functions have no DETERMINISTIC/STABLE/VOLATILE metadata. The config is accepted but ignored.
Ephemeral models (nested)
Partially supported
Ephemeral models compile to CTEs. Nested ephemeral references fail in views because T-SQL does not support nested CTEs in view definitions. Materialize as table instead.
Python models: non-PySpark
Not supported
Only PySpark DataFrames are supported. Pandas, Polars, and other DataFrame types cannot be used.
Catalog for single relation
Not implemented
The optimized single-relation catalog query provides no benefit in Fabric.
Fabric Lakehouse does not support SHALLOW CLONE (Databricks-specific Delta feature). The dbt clone command cannot be used.
Grants
Not supported
Fabric Lakehouse uses workspace-level access control, not SQL GRANT statements. The grants config has no effect.
Functions (all types)
Not supported
Fabric Lakehouse does not support CREATE FUNCTION via Spark SQL. This is a Databricks-only feature. No scalar, aggregate, or Python UDFs can be created.
Persist docs
Not supported
Cannot persist table/column descriptions via Spark SQL DDL.
Constraints: NOT NULL in CTAS
Not supported
CREATE TABLE AS SELECT cannot enforce NOT NULL constraints. They are silently ignored.
Constraints: enforcement
Not supported
ALTER TABLE CHANGE COLUMN SET NOT NULL is not supported on Fabric Delta tables. Constraint violations cannot be detected or rolled back during model execution.
Incremental: delete+insert with predicates
Not supported
Delta Lake on Fabric does not support subqueries in DELETE statements, which the delete+insert strategy requires when using predicates.
Incremental: on_schema_change='sync_all_columns'
Not supported
Apache Spark on Fabric does not support dropping columns from Delta tables. Schema sync cannot remove columns.
Incremental: column changes after removal
Broken
DELTA_MERGE_UNRESOLVED_EXPRESSION when merging after a column was removed upstream. Requires full refresh.