fix(bundle): match modern CLI run URL in JobRunStatus.parseId - #2018
Merged
Conversation
The databricks CLI changed the job-run URL it prints from the legacy
"#job/<id>/run/<id>" fragment to the modern "/jobs/<id>/runs/<id>?o=.."
path. JobRunStatus.parseId only matched the singular "/run/" form, so with
a current CLI the extension never captured the run id: startPolling() never
ran and the 60s no-run-id timer flipped the tree item to a permanent false
"Timeout while fetching run status" for jobs that actually succeeded.
Match both "/run/" and "/runs/" with /\/runs?\/(\d+)/, and use \d+ instead
of \d* so a stdout chunk splitting right after "/run(s)/" cannot yield an
empty capture (parseInt("") === NaN). Add unit tests pinning the CLI-output
contract for both the modern and legacy URL forms.
Co-authored-by: Isaac
anton-107
temporarily deployed
to
test-trigger-is
July 16, 2026 11:08 — with
GitHub Actions
Inactive
anton-107
temporarily deployed
to
test-trigger-is
July 16, 2026 11:09 — with
GitHub Actions
Inactive
Contributor
|
If integration tests don't run automatically, an authorized user can run them manually by following the instructions below: Trigger: Inputs:
Checks will be approved automatically on success. |
anton-107
had a problem deploying
to
test-trigger-is
July 16, 2026 11:10 — with
GitHub Actions
Error
Contributor
|
🤖 Integration tests triggered for |
Contributor
Author
✅ Validated in CIThe nightly PR pipeline (
The two remaining Linux failures on this run are pre-existing and unrelated to this PR:
|
rugpanov
approved these changes
Jul 16, 2026
Merged
rugpanov
added a commit
that referenced
this pull request
Jul 30, 2026
Drop internal/CI-only entries (test(e2e), chore(deps)) and the inert python-setup feat series (disabled-by-default feature flag, not yet wired). Keep the two user-visible changes: the #2018 job-run URL fix and the Databricks CLI v1.9.0 bump.
rugpanov
added a commit
that referenced
this pull request
Jul 30, 2026
## Release: v2.12.4 Patch release. Curated to the user-visible changes; internal/CI-only commits (`test(e2e)`, `chore(deps)`) and the inert `python-setup` feat series (disabled-by-default feature flag, not yet wired) are excluded from the changelog. ### packages/databricks-vscode - Fix job run status not updating when the CLI returns a modern job-run URL (#2018) - Update Databricks CLI to v1.9.0 (#2035) — see the [CLI release notes](https://github.com/databricks/cli/releases) for changes since v1.7.0 ### packages/databricks-vscode-types _No user-facing changes._ --- Tracking: DECO-27846 --------- Co-authored-by: releasebot <noreply@github.com> Co-authored-by: @rugpanov <gripanov@gmail.com>
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.
Summary
Fixes a product bug where the Bundle Resource Explorer shows a permanent, false "Timeout while fetching run status" for a job that actually succeeded.
The databricks CLI changed the run URL it prints from the legacy
#job/<id>/run/<id>fragment to the modern/jobs/<id>/runs/<id>?o=..path.JobRunStatus.parseIdonly matched the singular/run/form, so with a current CLI the extension never captures the run id —startPolling()never runs, and the 60s no-run-id timer flips the tree item to a timeout state even though the run completed fine.Fix
/run/and/runs/with/\/runs?\/(\d+)/.\d+instead of\d*so a stdout chunk that splits right after/run(s)/can't yield an empty capture (parseInt("") === NaN).JobRunStatus.test.tspinning the CLI-output contract for both the modern and legacy URL forms (there was no unit coverage on this parser, which is how the regression shipped).Evidence
Found via the vscode nightly e2e run (https://github.com/databricks-eng/eng-dev-ecosystem/actions/runs/29475140909). The CLI
--debuglog showsPOST /api/2.2/jobs/run-nowsucceeding and the run reachingSUCCESS/TERMINATED, with the CLI printingRun available at https://.../jobs/<id>/runs/<id>?o=..., while the extension tree item stayed at "Timeout while fetching run status" for the full window. Verified in node that the new regex captures the id from the modern URL, theRun available atform, and the legacy fragment, and does not mis-capture the job id from/jobs/<id>.Impact
Affects every user whose bundled CLI prints the modern run URL — candidate for a point release.
This pull request and its description were written by Isaac.