Improve error for labs projects that do not provide labs.yml#5559
Merged
Conversation
Most repositories in the databrickslabs GitHub org do not ship a labs.yml manifest and thus cannot be installed via the CLI. Installing one of them (e.g. 'databricks labs install brickster') failed with the cryptic 'Error: remote: read labs.yml from GitHub: not found'. Detect the not-found case and explain that the project is not installable with the CLI, pointing at the repository for instructions. Co-authored-by: Isaac
Collaborator
Integration test reportCommit: 6a0d21c
23 interesting tests: 15 SKIP, 7 KNOWN, 1 flaky
Top 24 slowest tests (at least 2 minutes):
|
simonfaltum
reviewed
Jun 12, 2026
simonfaltum
left a comment
Member
There was a problem hiding this comment.
LGTM. Verified the ErrNotFound chain end to end (errors.Is still works through both wraps) and ran the new test at the PR head. A typoed project name fails earlier at the releases call, so this message cannot fire for nonexistent repos.
Two optional notes inline. Also: this changes user-visible output, so consider a one-liner under ### CLI in NEXT_CHANGELOG.md.
…stall-missing-labs-yml
The not-found error claimed the project 'cannot be installed with the Databricks CLI', but the same 404 also fires for a valid project at a version that does not exist (e.g. 'labs install blueprint@v9.9.9'). Reword to surface both causes, broaden the test to cover both, and add a NEXT_CHANGELOG.md entry. Co-authored-by: Isaac
simonfaltum
approved these changes
Jun 17, 2026
deco-sdk-tagging Bot
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)).
Collaborator
Integration test reportCommit: fefe317
612 interesting tests: 563 MISS, 32 FAIL, 7 KNOWN, 4 PANIC, 4 flaky, 2 SKIP
Top 50 slowest tests (at least 2 minutes):
|
artchen-db
pushed a commit
to artchen-db/cli
that referenced
this pull request
Jun 18, 2026
…bricks#5623) Follow-up to a review comment on databricks#5559. `t.FailNow()` is documented as only legal on the goroutine running the test. The labs installer tests call it from inside `httptest` handler goroutines as the "unexpected request" fallback, where it only runs `runtime.Goexit` on the handler goroutine: the test is not actually failed and the client sees a dropped connection, which surfaces as a confusing error rather than a clear message. This replaces the four handler-goroutine occurrences with the idiomatic shape — `t.Errorf(...)` to record the failure on the test, plus `http.Error(w, "unexpected request", http.StatusInternalServerError)` to return a clear response. The one remaining `t.FailNow()` is on the test goroutine (a `t.Logf` / `t.FailNow` pair after the runner returns) and is collapsed to `t.Fatal`. Test-only change; no user-facing behavior changes. This pull request and its description were written by Isaac, an AI coding agent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
databricks labs install <name>only works for repositories in the databrickslabs GitHub org that ship alabs.ymlmanifest at the repository root. Most repositories in the org do not (they are libraries published to CRAN, PyPI, Maven, etc.), and installing one of them fails with:which gives the user no clue what is wrong.
Detect the not-found case when fetching
labs.ymland return an actionable error instead:This also covers projects without any GitHub release, where the version resolves to the literal ref
latestand the fetch 404s the same way.While PR #5560 limits
databricks labs listto those that are installable, users can still provide a lab name not in that list. Thus, this PR is still relevant for graceful error handling.Tests
New unit test simulating a project whose release tag has no
labs.yml(cmd/labs/project/fetcher_test.go). Verified live:databricks labs install bricksterproduces the message above.This pull request and its description were written by Isaac, an AI coding agent.