Hi I’ve currently got the following setup and facing the internal storage root error.
A hand rolled databricks workspace, and terraform IaC to provision azure databricks in repo 1 for a series of envs (e.g., dev, ci, prod), IaC provisioning unity-catalog in repo 2 (e.g., dev, ci, prod, ucadmin-metastore admin) and repo 3 which deploys a universal dab (e.g., dev, ci, prod).
The hand rolled workspace has an aue location and originally provisioned the metastore. When querying using SQL editor, storage_root_credential_name, storage_root_credential_id, storage_root which are all null.
This indicates that default storage (databricks-managed is applied), the goal is to have serverless default storage (desired architecture of Serverless + Default Storage with no customer-managed storage) and have terraform provision and connect to that.
When running repo 2 to provision catalogs in the same metastore, I’m finding a limitation to the terraform databricks provider which could be.
- a limitation (or bug) in the Databricks Terraform provider when working with Default Storage, or
- a newer API capability that the provider hasn’t yet adopted.
error:
│ Error: cannot create catalog: Metastore storage root URL does not exist. Default Storage is enabled in your account. You can use the UI to create a new catalog using Default Storage, or please provide a storage location for the catalog (for example 'CREATE CATALOG myCatalog MANAGED LOCATION ‘’).
│ with module.governance.databricks_catalog.managed[“insights_electricity_dev_australiaeast_integration_test”],
│ on ../modules/governance/catalogs.tf line 31, in resource “databricks_catalog” “managed”:
│ 31: resource “databricks_catalog” “managed” {
│ Error: cannot create catalog: Metastore storage root URL does not exist. Default Storage is enabled in your account. You can use the UI to create a new catalog using Default Storage, or please provide a storage location for the catalog (for example 'CREATE CATALOG myCatalog MANAGED LOCATION ‘’).
│ with module.governance.databricks_catalog.managed[“insights_electricity_dev_australiaeast”],
│ on ../modules/governance/catalogs.tf line 31, in resource “databricks_catalog” “managed”:
│ 31: resource “databricks_catalog” “managed” {
Code - databricks.unity-catalog/modules/governance/catalogs.tf:
resource “databricks_catalog” “managed” {
for_each = local.managed_catalogs
name = each.value.name
comment = try(each.value.comment, null)
owner = try(each.value.owner, null)
#storage_root = try(each.value.storage_root, null)
isolation_mode = “OPEN”
}