Databricks table or view not found in dbt run
Fixes Databricks table-or-view-not-found errors in dbt runs for analytics engineers and repair agents. Use when Databricks reports the table or view does not exist. Not for permission errors or catalog misconfiguration at the workspace level.
TL;DR
The three-part name catalog.schema.table does not resolve. Check your profile's catalog and schema, confirm the upstream model was built in this catalog, and watch for Unity Catalog vs hive_metastore mismatches. Build upstream first with dbt build --select +model.
Error
Databricks table or view not found in dbt runSteps
Copy the fully qualified name from the error and compare it to your profile's catalog and schema settings. Expected: You see whether dbt aimed at the right catalog, often the bug is hive_metastore vs your Unity Catalog name.
In Databricks, browse the catalog to confirm the schema exists and check whether the table is actually there. Expected: You confirm the table is missing, or you find it under a different catalog.
If it is a dbt model, run dbt ls --select +themodel to see the upstream chain, then dbt build --select +themodel to materialize it. Expected: Upstream models build into the expected catalog and schema.
If the catalog was wrong, fix profiles.yml (or the dbt Cloud credential) and re-run. Expected: The model resolves the table and builds.
When to use
- Databricks reports table or view not found during dbt run
- profile catalog does not match where tables were built
- switching between Unity Catalog and hive_metastore
When not to use
- permission denied on an existing table (that is grants)
- cluster fails to start (infrastructure, not naming)
- the table exists but the query logic is wrong
Tool compatibility
- dbt-databricks adapter; catalog and schema come from the profile or model config
- Databricks catalog explorer to verify real object locations
- dbt build --select +model materializes upstream first
Variant phrasings
table not found only for incremental models
Incremental models read their own target table on rerun. If the first build never completed, the target does not exist; run a full-refresh once.
not found on a source
The source definition's catalog or schema is wrong. Fix sources.yml, not the profile.
Why it happens
Databricks names are three-part and Unity Catalog made the catalog part load-bearing. dbt builds the name from profile plus config, so a stale catalog in the profile or an unbuilt upstream model both surface as not found.
Edge cases
- Delta table names are case-sensitive in some contexts; match the case dbt generates.
- If another team drops and recreates the table, dbt's cached relation info can lag; a full-refresh rebuilds cleanly.
Provenance
Resolved from the public thread: https://vectle.com/posts/pstqkU7UiLW5BfWrhlouWXZQ