Skip to content

direct: Don't open the state WAL when a deploy's plan fails - #5607

Merged
denik merged 3 commits into
mainfrom
wal-bug2
Jun 15, 2026
Merged

direct: Don't open the state WAL when a deploy's plan fails#5607
denik merged 3 commits into
mainfrom
wal-bug2

Conversation

@denik

Copy link
Copy Markdown
Contributor

Changes

When planning failed, the deploy phase still called UpgradeToWrite (which
writes the WAL header) and only then returned, never reaching the Finalize
that would commit or discard it — leaving a header-only WAL on disk.

Bail out before UpgradeToWrite when planning has already logged an error, so
a failed plan never opens the WAL. Also re-check diagnostics after
InitForApply: it receives ctx and could log a diagnostic without returning
an error, so the call site can't prove it won't (UpgradeToWrite takes no
ctx and thus can't log, so the earlier check covers it).

Why

Related to #5557. The dstate fix in #5606 makes recovery of a leftover WAL
safe; this stops a failed plan from creating one in the first place.

Tests

  • bundle/deploy/wal/two-failed-deploys: a deploy creates the job, then an
    injected fault on the plan-stage refresh GET makes the next two deploys fail
    while planning — no WAL is left and the final deploy recovers. Confirmed to
    fail when the fix is reverted.

This pull request and its description were written by Isaac.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 2ac388b

Run: 27557730163

Env🟨​KNOWN🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🟨​aws linux7152649818:10
💚​aws windows7152669799:16
💚​aws-ucws linux7153608956:56
💚​aws-ucws windows71536289311:37
💚​azure linux1172679796:53
💚​azure windows1172699777:41
💚​azure-ucws linux1173658917:40
🔄​azure-ucws windows31736588912:36
💚​gcp linux1172639827:16
💚​gcp windows11726598010:46
24 interesting tests: 15 SKIP, 7 KNOWN, 2 flaky
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K💚​R💚​R💚​R💚​R💚​R💚​R🔄​f💚​R💚​R
🔄​TestAccept/bundle/generate/alert✅​p✅​p✅​p✅​p✅​p✅​p✅​p🔄​f✅​p✅​p
🔄​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p✅​p✅​p✅​p✅​p🔄​f✅​p✅​p
🙈​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🟨​K💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct🟨​K💚​R💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K💚​R💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions🟨​K💚​R💚​R💚​R🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct🟨​K💚​R💚​R💚​R
🟨​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🟨​K💚​R💚​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
Top 25 slowest tests (at least 2 minutes):
durationenvtestname
4:44gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:17gcp windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:59gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:43gcp linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:31aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:24aws windowsTestAccept
3:20gcp windowsTestAccept
3:20aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:15azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:01aws-ucws windowsTestAccept
2:57azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:55aws-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:54aws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:49azure-ucws windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:44azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:36aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:35azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:34aws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:32aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:32azure-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:31azure windowsTestAccept
2:30aws-ucws linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:28azure windowsTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:25azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:03aws-ucws windowsTestAccept/bundle/resources/volumes/recreate/DATABRICKS_BUNDLE_ENGINE=terraform

@denik
denik added this pull request to the merge queueJun 15, 2026
@github-merge-queue
github-merge-queueBot removed this pull request from the merge queue due to a conflict with the base branch Jun 15, 2026
denik added 2 commits June 15, 2026 08:23
…an fails
A failed plan still ran UpgradeToWrite and then returned without Finalize,
leaving a header-only WAL on disk. Bail out before UpgradeToWrite when planning
has already errored. Also re-check diagnostics after InitForApply, which
receives ctx and could log a diagnostic without returning an error.
Co-authored-by: Isaac
Name it after the guarantee it checks: a failed plan leaves no WAL. Use a
generic test-bundle name.
Co-authored-by: Isaac
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 15:37 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is June 15, 2026 15:37 — with GitHub Actions Inactive
@denik
denik added this pull request to the merge queueJun 15, 2026
Merged via the queue into main with commit 6273bebJun 15, 2026
23 checks passed
@denik
denik deleted the wal-bug2 branch June 15, 2026 16:27
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 6273beb

Run: 27560744272

Env💥​PANIC❌​FAIL🟨​KNOWN🤯​MISS🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
🟨​aws linux71554591469:25
🟨​aws windows71551192484:33
💥​aws-ucws linux110193352730738120:00
💥​aws-ucws windows114158132734753120:05
❌​azure linux30717520908120:00
❌​azure windows25517493918120:05
💥​azure-ucws linux116250812635746120:00
💥​azure-ucws windows116251812585761120:06
❌​gcp linux41217530918289:09
❌​gcp windows41217496928287:29
463 interesting tests: 382 MISS, 54 FAIL, 10 RECOVERED, 7 KNOWN, 4 PANIC, 4 flaky, 2 SKIP
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K🟨​K🤯​M🤯​M🤯​M🤯​M🤯​M🤯​M🟨​K🟨​K
🤯​TestAccept/bundle/apps/job_permissions🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_doesnot_exist/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/artifacts/artifact_path_with_volume/volume_not_deployed/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/cli_defaults✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_fields🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_params_variables🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/multiple_resources🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/output_json✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/resolve_variables🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s🤯​M🙈​s🙈​s🙈​s
🤯​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M
🤯​TestAccept/bundle/config-remote-sync/target_override✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert✅​p🙈​s🤯​M🙈​s✅​p🙈​s🤯​M🙈​s✅​p🙈​s
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=direct✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p🤯​M✅​p🤯​M✅​p
🤯​TestAccept/bundle/deploy/empty-bundle✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/snapshot-comparison/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert🙈​s🙈​s🙈​s🙈​s✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/catalog🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/catalog/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/cluster✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M🤯​M✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/bind/registered-model🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=direct🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M🤯​M🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/schema🙈​s🙈​s🤯​M✅​p🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/secret-scope🙈​s🙈​s🤯​M✅​p🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint🙈​s🙈​s🤯​M✅​p🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_endpoint/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/vector_search_index🙈​s🙈​s🤯​M✅​p🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/vector_search_index/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/bind/volume🙈​s🙈​s🤯​M✅​p🙈​s🙈​s✅​p🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p✅​p🤯​M
🤯​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p✅​p🤯​M
🤯​TestAccept/bundle/deployment/unbind/grants🙈​s🙈​s🤯​M✅​p🙈​s🙈​s🤯​M🤯​M🙈​s🙈​s
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=direct🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=terraform🤯​M✅​p🤯​M🤯​M
🤯​TestAccept/bundle/deployment/unbind/permissions✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/alert✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/alert/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
🤯​TestAccept/bundle/generate/auto-bind/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p🤯​M✅​p✅​p✅​p🤯​M🤯​M✅​p✅​p
Top 50 slowest tests (at least 2 minutes):
durationenvtestname
30:49aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
27:40aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
26:27azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
25:05aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
24:10aws-ucws linuxTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
23:49aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension/DATABRICKS_BUNDLE_ENGINE=direct
22:46aws-ucws windowsTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
19:14azure-ucws windowsTestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct
18:31gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
18:24azure-ucws linuxTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
17:23aws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
17:11aws windowsTestAccept/bundle/resources/sql_warehouses/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
17:00azure-ucws windowsTestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct
16:15gcp windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
15:57aws-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
15:48gcp windowsTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
15:38gcp windowsTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=SINGLE_USER
15:32gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=USER_ISOLATION
14:45gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=direct/DATA_SECURITY_MODE=SINGLE_USER
14:42azure linuxTestAccept/bundle/integration_whl/wrapper/DATABRICKS_BUNDLE_ENGINE=direct
14:40azure windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
14:23gcp windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
14:10aws-ucws linuxTestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl
13:56azure-ucws windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
13:29azure windowsTestAccept/bundle/integration_whl/custom_params/DATABRICKS_BUNDLE_ENGINE=direct
13:17aws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:16aws windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:08gcp linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:03gcp windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
11:58azure linuxTestAccept/bundle/resources/clusters/deploy/data_security_mode/DATABRICKS_BUNDLE_ENGINE=direct
11:27aws-ucws linuxTestAccept/bundle/resources/sql_warehouses/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
11:01gcp linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:49aws linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
10:37aws-ucws linuxTestAccept/bundle/resources/model_serving_endpoints/running-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform
10:35aws linuxTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:26azure-ucws windowsTestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl
10:24aws windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
10:21aws windowsTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
10:20azure windowsTestAccept/bundle/resources/clusters/run/spark_python_task/DATABRICKS_BUNDLE_ENGINE=direct
10:14azure windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
9:38aws-ucws windowsTestAccept/bundle/integration_whl/interactive_single_user/DATABRICKS_BUNDLE_ENGINE=terraform
9:34gcp linuxTestAccept/bundle/integration_whl/interactive_cluster/DATABRICKS_BUNDLE_ENGINE=terraform
9:22gcp linuxTestAccept/bundle/integration_whl/interactive_cluster_dynamic_version/DATABRICKS_BUNDLE_ENGINE=terraform/DATA_SECURITY_MODE=USER_ISOLATION
9:18azure linuxTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=direct
8:58aws-ucws windowsTestAccept/bundle/integration_whl/base/DATABRICKS_BUNDLE_ENGINE=terraform
8:58azure linuxTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
8:54gcp linuxTestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
8:53aws linuxTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
8:51gcp windowsTestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
8:51aws-ucws windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
(324 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.

3 participants

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