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
- Use one of the v2-supported catalog types in catalogs.yml
- Add the missing type's validation branch in validate_catalogs if it should be supported
- 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)