dbt-labs/dbt-core · error
Starburst
Error message
Starburst
What it means
This is a Rust `todo!()` panic: the `get_relation` metadata dispatch in dbt-adapter has no implementation for the Starburst adapter yet, so reaching that match arm intentionally panics with the message 'Starburst'. It signals unfinished adapter work, not a runtime failure in user data. The public `get_relation` entry point routes per AdapterType and Starburst was registered as an enum variant before its metadata lookup was written.
Source
Thrown at crates/dbt-adapter/src/metadata/get_relation.rs:83
AdapterType::Salesforce => {
salesforce_get_relation(adapter, state, ctx, conn, database, schema, identifier)
}
AdapterType::Spark => {
spark_get_relation(adapter, state, ctx, conn, schema, identifier, token)
}
AdapterType::DuckDB | AdapterType::LakeCompute => duckdb_get_relation(
adapter, state, ctx, conn, database, schema, identifier, token,
),
AdapterType::Fabric => fabric_get_relation(
adapter, state, ctx, conn, database, schema, identifier, token,
),
AdapterType::ClickHouse => clickhouse_get_relation(
adapter, state, ctx, conn, database, schema, identifier, token,
),
AdapterType::Exasol => exasol_get_relation(
adapter, state, ctx, conn, database, schema, identifier, token,
),
AdapterType::Starburst => todo!("Starburst"),
AdapterType::Athena => todo!("Athena"),
AdapterType::Trino => todo!("Trino"),
AdapterType::Dremio => todo!("Dremio"),
AdapterType::Oracle => todo!("Oracle"),
AdapterType::Datafusion => todo!("Datafusion"),
}
}
/// Parses an `INFORMATION_SCHEMA.ROUTINES`-shaped result batch into a
/// [`Relation`].
pub(crate) fn relation_from_routines_batch(
adapter: &AdapterImpl,
database: &str,
schema: &str,
identifier: &str,
batch: &arrow::record_batch::RecordBatch,
) -> AdapterResult<Option<Relation>> {
if batch.num_rows() == 0 {View on GitHub (pinned to 0267ce9170)
Solutions
- Switch to a supported adapter type (e.g. Trino once implemented, or a generic adapter) until Starburst get_relation is implemented
- Implement the Starburst match arm by delegating to a Starburst-specific get_relation function modeled on the existing exasol/clickhouse implementations
- Track/pin a version of dbt-adapter where Starburst metadata lookup is complete
- Wrap adapter calls so unimplemented adapters are rejected at startup with a clear configuration error instead of a mid-run panic
Example fix
// before
AdapterType::Starburst => todo!("Starburst"),
// after
AdapterType::Starburst => starburst_get_relation(
adapter, state, ctx, conn, database, schema, identifier, token,
), Defensive patterns
Strategy: validation
Validate before calling
fn supports_get_relation(t: AdapterType) -> bool {
!matches!(t, AdapterType::Starburst | AdapterType::Athena | AdapterType::Trino | AdapterType::Dremio | AdapterType::Oracle | AdapterType::Datafusion)
}
if !supports_get_relation(adapter_type) { return Err(format!("get_relation not implemented for {adapter_type:?}")); } Type guard
fn is_implemented(t: &AdapterType) -> bool {
!matches!(t, AdapterType::Starburst | AdapterType::Athena | AdapterType::Trino | AdapterType::Dremio | AdapterType::Oracle | AdapterType::Datafusion)
} Try / catch
match std::panic::catch_unwind(|| get_relation(...)) {
Ok(rel) => rel,
Err(_) => Err(AdapterError::NotImplemented("get_relation for this adapter")),
} Prevention
- Check the adapter capability matrix before selecting an adapter type in profiles.yml
- Reject unimplemented adapter types at configuration load time, not mid-run
- Keep a test asserting every AdapterType variant has a get_relation arm
- Track todo!() arms with CI lint (e.g. deny clippy::todo or grep todo! in adapter crates)
When it happens
Trigger: Calling `get_relation` (public) with an adapter whose AdapterType is Starburst; the match arm at crates/dbt-adapter/src/metadata/get_relation.rs:83 executes `todo!("Starburst")` and panics.
Common situations: Running dbt against a Starburst/Trino-compatible warehouse before Starburst metadata support is implemented; a user or test selects the starburst adapter type and dbt resolves a relation (model, source, or seed) during compilation or execution.
Related errors
AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07).
Data as JSON: /api/errors/8b2bffc8819acffe.
Report an issue: GitHub.