Describe the issue
databricks bundle plan consistently reports update actions on every catalog, schema, and volume .grants sub-resource in our bundle, on every single run — including immediately after a clean bundle deploy with no configuration changes since.
Configuration
We've ruled out actual configuration drift through direct verification:
- Captured
databricks grants get catalog <name> --profile <profile> -o json before a deploy.
- Ran
databricks bundle deploy --target <target> --profile <profile>.
- Captured
grants get again immediately after.
Compare-Object on the two JSON outputs shows zero difference — live grants state is identical before and after the deploy.
- Ran
bundle plan again anyway — still reports update catalogs.<name>.grants, update schemas.<name>.grants, update volumes.<name>.grants for every grants-bearing resource in the bundle.
- Deleted the local state snapshot (
.databricks/bundle/<target>/resources.json) and redeployed to force a fresh snapshot — behavior unchanged.
This affects all grants-bearing resource types uniformly (catalogs, schemas, volumes), not a specific one, and persists regardless of whether the grants were declared purely via yml or partially applied via manual databricks grants update calls that were later reconciled to match yml exactly.
Steps to reproduce the behavior
- Define a catalog (or schema/volume) resource with a
grants: block in a bundle using engine: direct.
databricks bundle deploy --target <target>
databricks bundle plan --target <target> — observe update reported for the .grants sub-resource despite no changes.
- Confirm via
databricks grants get <securable_type> <full_name> that live state matches the declared grants exactly.
- Repeat
bundle plan — update persists indefinitely.
Expected behavior
bundle plan should report no pending action for a .grants sub-resource when live state matches the declared configuration and the most recent deployment snapshot.
Actual behavior
.grants sub-resources are always shown as update, regardless of actual state, on every plan invocation.
OS and CLI version
CLI version: 1.8.0
Engine: direct (engine: direct in databricks.yml)
Windows
Is this a regression?
Unknown — we only tested on CLI 1.8.0 (upgraded from 0.299.0 mid-project specifically to gain direct-engine support for catalog/schema resources, which 0.299.0 didn't recognize at all — unknown field: engine warning, no converter for resource type catalogs on bind). We have not tested this specific grants-drift behavior on an earlier direct-engine-capable version, so we can't confirm whether this is a new regression or has been present since direct-engine catalog/grants support was introduced.
Debug Logs
Output logs if you run the command with debug logs enabled. Example: databricks bundle deploy --log-level=debug. Redact if needed
Describe the issue
databricks bundle planconsistently reportsupdateactions on every catalog, schema, and volume.grantssub-resource in our bundle, on every single run — including immediately after a cleanbundle deploywith no configuration changes since.Configuration
We've ruled out actual configuration drift through direct verification:
databricks grants get catalog <name> --profile <profile> -o jsonbefore a deploy.databricks bundle deploy --target <target> --profile <profile>.grants getagain immediately after.Compare-Objecton the two JSON outputs shows zero difference — live grants state is identical before and after the deploy.bundle planagain anyway — still reportsupdate catalogs.<name>.grants,update schemas.<name>.grants,update volumes.<name>.grantsfor every grants-bearing resource in the bundle..databricks/bundle/<target>/resources.json) and redeployed to force a fresh snapshot — behavior unchanged.This affects all grants-bearing resource types uniformly (catalogs, schemas, volumes), not a specific one, and persists regardless of whether the grants were declared purely via yml or partially applied via manual
databricks grants updatecalls that were later reconciled to match yml exactly.Steps to reproduce the behavior
grants:block in a bundle usingengine: direct.databricks bundle deploy --target <target>databricks bundle plan --target <target>— observeupdatereported for the.grantssub-resource despite no changes.databricks grants get <securable_type> <full_name>that live state matches the declared grants exactly.bundle plan—updatepersists indefinitely.Expected behavior
bundle planshould report no pending action for a.grantssub-resource when live state matches the declared configuration and the most recent deployment snapshot.Actual behavior
.grantssub-resources are always shown asupdate, regardless of actual state, on everyplaninvocation.OS and CLI version
CLI version: 1.8.0
Engine: direct (
engine: directin databricks.yml)Windows
Is this a regression?
Unknown — we only tested on CLI 1.8.0 (upgraded from 0.299.0 mid-project specifically to gain direct-engine support for catalog/schema resources, which 0.299.0 didn't recognize at all —
unknown field: enginewarning,no converter for resource type catalogson bind). We have not tested this specific grants-drift behavior on an earlier direct-engine-capable version, so we can't confirm whether this is a new regression or has been present since direct-engine catalog/grants support was introduced.Debug Logs
Output logs if you run the command with debug logs enabled. Example: databricks bundle deploy --log-level=debug. Redact if needed