Surface installer-phase failures in build log analysis#998
Merged
Conversation
The Base Installer run 28904287229 failed on a bundled-installer 404,
but the job summary said "No failed steps detected". Four capture-layer
gaps in analyze_build_log.py hid the failure:
- Code-less diagnostics ("error : msg", as logged by custom FwBuildTasks
via Log.LogError) did not match MSBUILD_DIAGNOSTIC_RX; the error code
is now optional.
- Compound targets such as BuildInstaller were not recognized as real
project steps (no word boundary mid-word), so installer-phase output
had no step to attach to.
- Diagnostics logged without a node prefix were dropped when the default
node had no open step; they now attribute to the sole open step when
unambiguous.
- 'Done Building Project ... -- FAILED.' never marked a step failed (the
optional regex group could not capture after a lazy quantifier); the
suffix is now checked directly.
Safety net: if a log contains "Build FAILED." but no step was attributed,
the report now quotes the raw MSBuild failure summary, emits an error
annotation, and exits non-zero, so the summary can never claim success
on a failed build. EXIT_CODE_RX also accepts "with exit code N".
Following the enrichment registry design, add a DownloadFile enrichment:
on "Could not retrieve latest <url>. Exceeded retry count", it names the
missing file, greps Build/*.targets for where the address is pinned, and
suggests uploading the file or repointing the pin.
Verified against the actual build.log artifact from run 28904287229:
report now leads with the FLExBridge_Offline_4.3.0.exe 404 as root cause
(179 steps, 1 failed) with pins at Installer.legacy.targets:613 and
Installer.targets:242; a green log still exits 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Tools such as Exec with IgnoreExitCode=true (the VerifyWix3Inputs findstr probe) log non-zero exit codes on healthy builds. Now that installer projects are tracked steps, such a mention inside a step would flag a green build as failed. In boundary mode real failures surface as captured errors or a "-- FAILED." project marker, so record exit-code mentions as notable context instead. The synthetic fallback (no project boundaries, e.g. raw job logs) still fails on exit codes, its only signal there. Verified: a green log with a benign "exited with code 1" inside a tracked step exits 0; the failing run's build.log artifact still reports the one installer failure. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The duplicate-project merge copied errors, warnings, exit codes, and notable lines to the canonical record but not explicitly_failed, so a project built more than once whose later invocation ended with "-- FAILED." (and no captured errors) reported as succeeded. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jasonleenaylor
marked this pull request as ready for review
July 8, 2026 21:29
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.
Quick Summary
Base Installer run 28904287229 failed on a bundled-installer 404, but the job summary said "No failed steps detected".
error : message) and recognize compound targets likeBuildInstalleras steps, so installer-phase errors are attributed.Build FAILED.with no attributed step now surfaces the raw MSBuild failure summary and exits non-zero.DownloadFileenrichment names the missing bundled download and locates the pinned address inBuild/*.targets.Verified against the failing run's
build.logartifact: the report now leads with theFLExBridge_Offline_4.3.0.exe404 as root cause; a green log still exits 0.🤖 Generated with Claude Code
This change is