Skip to content

Suggest auth logout command for duplicate Docker profiles - #7363

Merged
stevenchen-db merged 2 commits into
mainfrom
auth/docker-duplicate-profile-hint
Nov 4, 2026
Merged

stevenchen-db merged 2 commits into
mainfrom
auth/docker-duplicate-profile-hint

Conversation

@stevenchen-db

Copy link
Copy Markdown
Contributor

Changes

When multiple profiles match the same workspace ID, the Docker credential helper error now tells users how to remove the duplicate:

Error: multiple Databricks profiles match workspace ID 123: a and b. Docker credential helper requires exactly one profile per workspace. Remove the duplicate profile with: databricks auth logout --profile <profile-name> --delete

Both call sites in libs/dockercredentials/profile.go now share one helper.

Tests

Updated unit test expectations and the auth/docker/token and auth/docker/configure-errors acceptance outputs.

This pull request and its description were written by Isaac.

When multiple profiles match the same workspace ID, the Docker credential
helper error now tells users how to remove the duplicate profile.

Co-authored-by: Isaac <no-reply@databricks.com>
@stevenchen-db
stevenchen-db requested review from a team as code owners November 4, 2026 18:05
Co-authored-by: Isaac <no-reply@databricks.com>
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Commit: 0492d506b | Workflow run

Regression test report

Selected 2 changed tests (limit=20, 0 not selected)

2 tests: regression=2 unreleased=0 coverage=0 failing=0
test branch main (964664a) latest (v1.24.0)
TestAccept/cmd/auth/docker/configure-errors ✅ ❌ ❌
TestAccept/cmd/auth/docker/token ✅ ❌ ❌
TestAccept/cmd/auth/docker/configure-errors: branch ✅ | main (964664a) ❌ | latest (v1.24.0) ❌

main (964664a):

acceptance_test.go:1342: Diff:
        --- cmd/auth/docker/configure-errors/output.txt
        +++ /tmp/TestAcceptcmdauthdockerconfigure-errors722431604/002/output.txt
        @@ -48,7 +48,7 @@
         === Another profile already maps to the workspace
         
         >>> musterr [CLI] auth docker configure docker-test
        -Error: multiple Databricks profiles match workspace ID [WORKSPACE_ID]: duplicate and docker-test. Docker credential helper requires exactly one profile per workspace. Remove the duplicate profile with: databricks auth logout --profile <profile-name> --delete
        +Error: multiple Databricks profiles match workspace ID [WORKSPACE_ID]: duplicate and docker-test. Remove duplicate workspace_id entries before using Docker credential helper
         
         === Nothing changed
         Docker config not created; profiles unchanged
        
FAIL

latest (v1.24.0): same output as main (964664a)

TestAccept/cmd/auth/docker/token: branch ✅ | main (964664a) ❌ | latest (v1.24.0) ❌

main (964664a):

acceptance_test.go:1342: Diff:
        --- cmd/auth/docker/token/output.txt
        +++ /tmp/TestAcceptcmdauthdockertoken217338017/002/output.txt
        @@ -54,4 +54,4 @@
         === Multiple profiles for the workspace
         
         >>> musterr [CLI] auth docker token
        -Error: multiple Databricks profiles match workspace ID [WORKSPACE_ID]: docker-test and duplicate. Docker credential helper requires exactly one profile per workspace. Remove the duplicate profile with: databricks auth logout --profile <profile-name> --delete
        +Error: multiple Databricks profiles match workspace ID [WORKSPACE_ID]: docker-test and duplicate. Remove duplicate workspace_id entries before using Docker credential helper

latest (v1.24.0): same output as main (964664a)

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 0492d50

Run: 41883940593

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 271 17 5:08
✅​ aws-windows-latest-4core-16gb 273 15 3:41
✅​ azure linux-2core-8gb 270 17 4:13
✅​ azure-windows-latest-4core-16gb 272 15 3:41
✅​ gcp linux-2core-8gb 271 17 4:18
✅​ gcp-windows-latest-4core-16gb 273 15 3:38
Top 3 slowest tests (at least 2 minutes):
duration env testname
3:35 azure-windows-latest-4core-16gb TestAccept
3:35 aws-windows-latest-4core-16gb TestAccept
3:33 gcp-windows-latest-4core-16gb TestAccept

@stevenchen-db
stevenchen-db added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit a411008 Nov 4, 2026
28 checks passed
@stevenchen-db
stevenchen-db deleted the auth/docker-duplicate-profile-hint branch November 4, 2026 19:12
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: a411008

Run: 41894882204

Env ❌​FAIL 🔄​flaky ✅​pass 🙈​skip Time
❌​ aws linux-2core-8gb 6 3 1508 1255 348:40
❌​ aws-windows-latest-4core-16gb 6 6 1424 1282 329:58
🔄​ azure linux-2core-8gb 3 1361 1307 115:26
🔄​ gcp linux-2core-8gb 3 1348 1312 116:27
🔄​ gcp-windows-latest-4core-16gb 2 1268 1339 129:27
21 interesting tests: 11 FAIL, 10 flaky
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb gcp linux-2core-8gb gcp-windows-latest-4core-16gb
❌​ TestAccept ❌​F ❌​F 🔄​f 🔄​f ✅​p
🔄​ TestAccept/bundle/config-remote-sync/multiple_resources ✅​p 🙈​s 🔄​f ✅​p 🙈​s
🔄​ TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/debug/fetch-repository-info ✅​p ✅​p ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/debug/fetch-repository-info/DMS= ✅​p ✅​p ✅​p 🔄​f 🔄​f
🔄​ TestAccept/bundle/debug/fetch-repository-info/DMS=true ✅​p ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/deploy/spark-jar-task ✅​p ❌​F ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/deploy/spark-jar-task/DMS= ✅​p ❌​F ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/deploy/spark-jar-task/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent ✅​p ❌​F ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle ❌​F 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS= 🔄​f ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true ❌​F 🔄​f ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true ❌​F ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS= 🔄​f 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true 🔄​f 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/templates/default-python/combinations/classic/DLT=yes/DMS=/NBOOK=no/PY=no/READPLAN= ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/templates/default-python/combinations/classic/DLT=yes/DMS=/NBOOK=no/PY=yes/READPLAN=1 ✅​p 🔄​f ✅​p ✅​p ✅​p
Top 50 slowest tests (at least 2 minutes):
duration env testname
29:02 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
28:31 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
24:09 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
23:25 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=
11:48 aws linux-2core-8gb TestAccept/bundle/deploy/spark-jar-task/DMS=
11:48 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
11:41 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=
11:26 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
11:23 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
10:19 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
10:14 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
10:01 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=
9:34 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:29 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=true
9:18 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
9:18 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
9:16 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
9:10 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:08 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:39 azure linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true
8:17 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true
8:09 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
7:55 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
7:34 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
7:31 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
7:29 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
7:12 gcp linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
7:07 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=
7:04 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
7:03 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
6:57 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=
6:55 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=true
6:54 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
6:49 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
6:48 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
6:35 aws linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
6:33 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
6:32 aws linux-2core-8gb TestAccept/bundle/deploy/spark-jar-task/DMS=true
6:29 azure linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
6:29 azure linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
6:29 aws linux-2core-8gb TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true
6:18 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=
6:15 gcp linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
6:08 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
5:58 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
5:55 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
5:51 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true
5:50 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
5:32 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
5:26 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=

Sign up for free to 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