dbt-labs/dbt-core · error

catalogs.yml has no support for an explicit catalog type of

Error message

catalogs.yml has no support for an explicit catalog type of {}

What it means

Catalogs-v2 validation error: the catalog's declared type has no expressible representation in catalogs.yml, so validate_catalogs cannot apply per-type semantics (unity/biglake/duckdb/hive config blocks) to it — the yml schema simply does not support an explicit catalog of that type.

Solutions

  1. Use one of the v2-supported catalog types in catalogs.yml
  2. Add the missing type's validation branch in validate_catalogs if it should be supported
  3. Check the catalog 'type' key for typos
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/dbt-schemas/src/schemas/dbt_catalogs_v2.rs:1285 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07). Data as JSON: /api/errors/586953ccb95dac29. Report an issue: GitHub.

Appendix: source

Thrown at crates/dbt-schemas/src/schemas/dbt_catalogs_v2.rs:1285

                if let Some(databricks) = catalog.config_block("databricks") {
                    catalog.validate_unity_semantics(databricks)?;
                }
                if let Some(duckdb) = catalog.config_block("duckdb") {
                    catalog.validate_duckdb_semantics(duckdb, "unity")?;
                }
            }
            CatalogType::BiglakeMetastore => {
                if let Some(bigquery) = catalog.config_block("bigquery") {
                    catalog.validate_biglake_semantics(bigquery)?;
                }
            }
            CatalogType::HiveMetastore | CatalogType::DuckLake | CatalogType::LocalFilesystem => {}
            // These are not supported as explicit catalog types in catalogs.yml's `type` field.
            CatalogType::SnowflakeBuiltIn
            | CatalogType::SnowflakeNative
            | CatalogType::BigqueryNative
            | CatalogType::DuckdbNative => {
                unreachable!(
                    "catalogs.yml has no support for an explicit catalog type of {}",
                    catalog.catalog_type.as_str()
                )
            }
        }
        Ok(())
    }

    pub fn json_schema(&self) -> serde_json::Value {
        let entries: Vec<serde_json::Value> = self
            .schemas
            .iter()
            .map(|cts| {
                let config_props: serde_json::Map<String, serde_json::Value> = cts
                    .platforms
                    .iter()
                    .map(|p| (p.key.to_string(), Self::fields_schema(p.fields)))
                    .collect();

View on GitHub (pinned to 0267ce9170)