Skip to content

direct: Fix WAL corruption after two consecutive failed deploys - #5606

Merged
denik merged 2 commits into
mainfrom
wal-bug1
Jun 15, 2026
Merged

direct: Fix WAL corruption after two consecutive failed deploys#5606
denik merged 2 commits into
mainfrom
wal-bug1

Conversation

@denik

Copy link
Copy Markdown
Contributor

Changes

The direct engine's local state is resources.json (committed) plus a
resources.json.wal write-ahead log whose serial must be exactly one ahead of
the committed serial. When a deploy opened the WAL but committed nothing — a
header-only WAL, e.g. a crash between UpgradeToWrite and Finalize — recovery
advanced the in-memory serial without persisting it. After a second such failure
the next WAL header was written two serials ahead of the committed state, and
every later bundle command then failed WAL recovery (WAL serial (N) is ahead of expected) until the WAL was deleted by hand.

Fix: only advance the serial when the WAL carried entries, i.e. when the merged
state is actually written back, so a no-op WAL is discarded without drift.

Why

Fixes#5557. Reported by a customer: any error that took more than one deploy
attempt to clear wedged the bundle on the second failure.

Tests

  • bundle/deploy/wal/two-crashed-deploys: two deploys killed mid-apply recover
    without wedging.
  • Unit TestHeaderOnlyWALRecoveryDoesNotAdvanceSerial. Both confirmed to fail
    when the fix is reverted.

This pull request and its description were written by Isaac.

Recovering a header-only WAL (a deploy that opened the WAL but committed
nothing, e.g. a crash between UpgradeToWrite and Finalize) advanced the
in-memory serial without persisting it. After a second such failure the next
WAL header was written two serials ahead of the committed state, and every
later command failed WAL recovery until the WAL was deleted by hand.
Only advance the serial when the WAL carried entries, i.e. when the merged
state is actually written back.
Co-authored-by: Isaac
Name it after the WAL condition it recovers, matching sibling tests
(empty-wal, stale-wal, future-serial-wal). Use a generic test-bundle name.
Co-authored-by: Isaac
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 13:48 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 13:48 — with GitHub Actions Inactive
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: ec65a6b

Run: 27550846365

Env🟨​KNOWN🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
💚​aws linux7152649796:54
🟨​aws windows71526697711:00
💚​aws-ucws linux71536089314:56
💚​aws-ucws windows71536289112:53
🔄​azure linux11172669778:51
💚​azure windows1172699759:14
🔄​azure-ucws linux211736388913:55
💚​azure-ucws windows1173678878:46
💚​gcp linux1172639807:33
💚​gcp windows1172659788:13
25 interesting tests: 15 SKIP, 7 KNOWN, 3 flaky
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept💚​R🟨​K💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
🙈​TestAccept/bundle/invariant/no_drift🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/permissions🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions💚​R🟨​K💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R🟨​K💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R🟨​K💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions💚​R🟨​K💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct💚​R🟨​K💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform💚​R🟨​K💚​R💚​R
🙈​TestAccept/bundle/resources/postgres_branches/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/recreate🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/replace_existing🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/update_protected🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_branches/without_branch_id🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_endpoints/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_endpoints/recreate🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/postgres_projects/update_display_name🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/synced_database_tables/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/basic🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/grants/select🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/ssh/connection🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🔄​TestFetchRepositoryInfoAPI_FromRepo✅​p✅​p✅​p✅​p🔄​f✅​p✅​p✅​p✅​p✅​p
🔄​TestFetchRepositoryInfoAPI_FromRepo/root✅​p✅​p✅​p✅​p✅​p✅​p🔄​f✅​p✅​p✅​p
🔄​TestFetchRepositoryInfoAPI_FromRepo/subdir✅​p✅​p✅​p✅​p✅​p✅​p🔄​f✅​p✅​p✅​p
Top 30 slowest tests (at least 2 minutes):
durationenvtestname
4:43gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
4:24gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:20gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:18gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:49aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:24azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:19azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:18aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:09azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:07aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:07azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:06azure windowsTestAccept
3:06aws-ucws windowsTestAccept
3:02aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:00aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:58aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:57aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:57azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:55aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:55azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:43azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:42azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:40gcp windowsTestAccept
2:29aws-ucws linuxTestAccept/bundle/resources/alerts/with_file/DATABRICKS_BUNDLE_ENGINE=terraform
2:24azure-ucws windowsTestAccept
2:15aws-ucws linuxTestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=terraform
2:15aws-ucws linuxTestAccept/bundle/resources/volumes/recreate/DATABRICKS_BUNDLE_ENGINE=terraform
2:11aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/basic/DATABRICKS_BUNDLE_ENGINE=terraform
2:07aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/basic/DATABRICKS_BUNDLE_ENGINE=direct
2:03aws-ucws windowsTestAccept/bundle/resources/volumes/recreate/DATABRICKS_BUNDLE_ENGINE=terraform

Comment threadacceptance/bundle/deploy/wal/header-only-wal/output.txt
@denik
denik added this pull request to the merge queueJun 15, 2026
Merged via the queue into main with commit 8f270baJun 15, 2026
25 checks passed
@denik
denik deleted the wal-bug1 branch June 15, 2026 15:20
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 8f270ba

Run: 27556715027

Env💥​PANIC❌​FAIL🟨​KNOWN🤯​MISS🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🟨​aws linux741554191386:25
🔄​aws windows4715507923114:25
💥​aws-ucws linux1620932750737120:00
💥​aws-ucws windows18182352694752120:04
❌​azure linux19117535909111:53
💥​azure windows1247117427917120:05
💥​azure-ucws linux18181212718745120:00
💥​azure-ucws windows118254812580760120:05
❌​gcp linux41817524917272:59
❌​gcp windows41217496927289:19
530 interesting tests: 471 MISS, 41 FAIL, 7 KNOWN, 5 PANIC, 4 flaky, 2 SKIP
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K💚​R🤯​M🤯​M🟨​K🤯​M🤯​M🤯​M🟨​K🟨​K
🤯​TestAccept/bundle/apps/job_permissions🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
❌​TestAccept/bundle/config-remote-sync/multiple_resources🙈​s🙈​s✅​p🙈​s🙈​s🙈​s❌​F🙈​s🙈​s🙈​s
❌​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct✅​p❌​F
🤯​TestAccept/bundle/deploy/empty-bundle✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert🙈​s🙈​s🙈​s🙈​s✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/catalog🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/catalog/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/cluster✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/registered-model🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/schema🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/secret-scope🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/vector_search_index🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_index/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/volume🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/unbind/grants🙈​s🙈​s✅​p🤯​M🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/deployment/unbind/permissions✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/alert✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/pipeline_and_deploy✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/python_job_and_deploy🔄​f✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct🔄​f✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
❌​TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p❌​F✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/integration_whl/base✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
💥​TestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p💥​P✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/custom_params✅​p✅​p❌​F🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
🤯​TestAccept/bundle/integration_whl/custom_params/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M✅​p🤯​M✅​p🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/custom_params/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p❌​F🤯​M✅​p❌​F✅​p🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster✅​p✅​p✅​p🤯​M❌​F✅​p✅​p🤯​M✅​p✅​p
💥​TestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p💥​P❌​F✅​p✅​p🤯​M✅​p✅​p
💥​TestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M❌​F✅​p✅​p💥​P✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version✅​p✅​p✅​p🤯​M❌​F❌​F❌​F🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER✅​p✅​p✅​p✅​p❌​F❌​F❌​F🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION✅​p✅​p✅​p✅​p❌​F❌​F❌​F🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER✅​p✅​p✅​p🤯​M❌​F❌​F✅​p🤯​M✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION✅​p✅​p✅​p✅​p✅​p❌​F❌​F❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_single_user✅​p✅​p✅​p✅​p❌​F❌​F✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p✅​p❌​F❌​F✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p✅​p❌​F❌​F✅​p❌​F✅​p✅​p
🤯​TestAccept/bundle/integration_whl/serverless🙈​s🙈​s✅​p✅​p🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/integration_whl/serverless/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/serverless/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/serverless_custom_params🙈​s🙈​s✅​p✅​p🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/integration_whl/serverless_custom_params/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/serverless_custom_params/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/serverless_dynamic_version🙈​s🙈​s✅​p✅​p🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/integration_whl/serverless_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/serverless_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/wrapper🙈​s🙈​s🙈​s🙈​s✅​p✅​p✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/integration_whl/wrapper/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/wrapper/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/wrapper_custom_params🙈​s🙈​s🙈​s🙈​s✅​p🤯​M✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/integration_whl/wrapper_custom_params/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M
🤯​TestAccept/bundle/integration_whl/wrapper_custom_params/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293🙈​s🙈​s✅​p✅​p🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=app.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=catalog.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=dashboard.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=database_catalog.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=database_instance.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=experiment.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl✅​p✅​p✅​p🤯​M
🤯​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_with_depends_on.yml.tmpl✅​p✅​p✅​p🤯​M
Top 50 slowest tests (at least 2 minutes):
durationenvtestname
39:34aws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
28:27aws-ucws linuxTestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
28:26aws windowsTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
27:28aws-ucws linuxTestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
26:27aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
26:05aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
25:55aws-ucws windowsTestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
24:55azure-ucws linuxTestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
24:35aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
22:40azure-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
21:05aws windowsTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
20:57aws windowsTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
20:51azure-ucws windowsTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
20:39azure-ucws windowsTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
18:30azure-ucws windowsTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
16:35azure-ucws linuxTestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=vector_search_index.yml.tmpl
16:26aws-ucws windowsTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=direct
13:58aws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
13:09azure-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=direct
13:05aws linuxTestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct
13:01aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
12:59aws-ucws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
12:51gcp windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:40gcp linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:24azure-ucws linuxTestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
12:10aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
12:07aws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
12:06gcp windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
12:05gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
11:56aws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
11:51gcp linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
11:33gcp windowsTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
11:00gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
10:32azure windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
10:25aws windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:14aws-ucws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:12aws-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
10:04aws windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
9:54aws-ucws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
9:53aws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:50gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
9:40aws linuxTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
9:38azure windowsTestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct
9:35gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
9:29aws linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
9:25gcp windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
9:19gcp linuxTestAccept/bundle/run/app-with-job/DATABRICKS_BUNDLE_ENGINE=terraform
9:15gcp linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=direct
9:04azure windowsTestAccept/bundle/resources/clusters/deploy/data_security_mode/DATABRICKS_BUNDLE_ENGINE=direct
9:03aws-ucws windowsTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
(391 table rows omitted to keep the report under 60000 bytes)

deco-sdk-taggingBot added a commit that referenced this pull request Jun 17, 2026
## Release v1.4.0
### CLI
* Improved error messages for `ssh connect`: when an SSH connection attempt fails, the client now fetches and prints the server's recent error logs ([#5555](#5555)).
* Increase the SSH server startup timeout from 10 to 45 minutes when a GPU accelerator is requested via `databricks ssh connect --accelerator` ([#5569](#5569)).
* Fix authentication falling back to the default profile in `.databrickscfg` when a host is already configured via the environment (e.g. `DATABRICKS_HOST` with `DATABRICKS_TOKEN`) ([#5616](#5616)).
* ssh: fix opening remote environment in Cursor, which previously hung on default-extension install and never opened the editor ([#5619](#5619)).
* Improve the error shown when `databricks labs install` cannot find a project's `labs.yml`: the message now explains that either the requested version does not exist or the project is not installable with the CLI, and links to the repository ([#5559](#5559)).
### Bundles
* Remove API enum values and types that are still in development from the `databricks-bundles` Python package; these were never accepted by the backend ([#5484](#5484)).
* direct: Fix resolving a resource reference that is used more than once within the same field ([#5558](#5558)).
* Bundle variable references now accept Unicode letters in path segments (e.g. `${var.变量}`). ([#5532](#5532))
* Ignore remote changes for vector search direct_access_index_spec.schema_json to prevent drift when the backend normalizes the schema ([#5481](#5481)).
* Remove hidden, never-functional `--existing-dashboard-id`, `--existing-dashboard-path`, `--existing-alert-id`, and `--existing-genie-space-id` alias flags from `bundle generate`; use the documented `--existing-id` / `--existing-path` flags instead ([#5591](#5591)).
* engine/direct: Fix WAL corruption after two consecutive failed deploys ([#5606](#5606)).
* engine/direct: Don't open the deployment state WAL when a deploy's plan fails ([#5607](#5607)).
* Ignore unity catalog managed schema property defaults to avoid unnecessary drift ([#5195](#5195)).
* Add `postgres_roles` and `postgres_databases` resources to create Postgres roles and databases on a Lakebase branch ([#5467](#5467), [#5627](#5627)).
* direct: Stop spurious recreate/rename on redeploy when the backend normalizes a resource's name-based ID (e.g. Unity Catalog lowercasing a schema or volume name) ([#5599](#5599)).
* Fix the generated pipeline README to suggest `databricks bundle run <pipeline> --refresh <table>` for running a single transformation; the previously documented `--select` flag is not supported by `bundle run` ([#5252](#5252)).
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple references to the same resource do not resolve

3 participants

@denik@eng-dev-ecosystem-bot@andrewnester