AIR CLI Integration: fall back to MLflow when Bricklens returns no logs for a terminal run - #6245
Merged
Merged
Conversation
Collaborator
Integration test reportCommit: 9d8e92a
8 interesting tests: 4 RECOVERED, 4 SKIP
Top 1 slowest tests (at least 2 minutes):
|
vinchenzo-db
approved these changes
Aug 12, 2026
Comment on lines
+306
to
+310
| // Bricklens served every request but never returned a record. That is | ||
| // not proof the run has no logs: Bricklens ingestion can lag or miss a | ||
| // run whose logs are fully present in MLflow (the path --download-to | ||
| // uses). Defer to the MLflow fallback rather than declaring "no logs" | ||
| // here; it owns the real no-logs report, with the same exit code. |
riddhibhagwat-db
force-pushed
the
air-logs-empty-fallback
branch
from
August 12, 2026 21:08
00e0aee to
a505c70
Compare
…l run `air logs <run>` printed "No logs available for run <id>. Run terminated in state SUCCESS" and exited 0 for runs whose logs were fully retrievable: `air logs --download-to DIR` on the same run returned the complete log. This happens when Bricklens is enabled for the workspace but never ingested the run — it answers every request successfully with zero records, yet the logs are present in MLflow. The streaming (print) path only fell back to MLflow on errBricklensFeatureDisabled (gated off / not deployed / persistent failure); an empty-but-successful Bricklens response was treated as the final answer. The download path already reads from MLflow, which is why it worked. Treat "Bricklens served every request but never returned a record" the same as feature-disabled: hand off to the MLflow fallback, which owns the real no-logs report and preserves the run-derived exit code. This mirrors the Python CLI fix (databricks-eng/universe#2366012). Applies to both the terminal tail and the static (past-retry) view. Co-authored-by: Isaac
riddhibhagwat-db
force-pushed
the
air-logs-empty-fallback
branch
from
August 12, 2026 21:30
a505c70 to
9d8e92a
Compare
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
air logs <run>printed "No logs available for run . Run terminated in state SUCCESS" and exited 0 for runs whose logs were fully retrievable:air logs --download-to DIRon the same run returned the complete log. This happens when Bricklens is enabled for the workspace but never ingested the run so it answers every request successfully with zero records, yet the logs are present in MLflow.The streaming (print) path only fell back to MLflow on errBricklensFeatureDisabled (gated off / not deployed / persistent failure); an empty-but-successful Bricklens response was treated as the final answer. The download path already reads from MLflow, which is why it worked.
This is the Go version of the Python fix: https://github.com/databricks-eng/universe/pull/2384942
Tests