Repository navigation
fix(computers): a failed resolve reports apt's error, not the resolver's traceback - #621
Merged
Merged
Conversation
…nted before the resolver exits
andrewpark-scaleai
enabled auto-merge (squash)
November 11, 2026 19:07
williamloo-scale
approved these changes
Nov 11, 2026
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.
Why
integration-local-slowfailed on most runs between about 16:00 and 18:00 UTC on 11-11, on main and on PRs. Computer env builds failed at the resolve stage, so every test that deploys one gotDeployRefused: ... has no ready build. Each failure gave the same reason:That names the command but not why apt failed.
composed.failedreports the last line of the resolver's output, and that line is the resolver's own traceback, which buries apt'sE:line printed just above it. So CI can't show the cause.From five failing runs, I can tell this much:
My best guess is an upstream outage on the Ubuntu or Launchpad mirrors that outlasted apt's own retries, but that's an inference. This change makes the next failure name its cause.
The arm64 resolves that fail in every shard are expected: "this machine can't build linux/arm64: its Docker has no emulation for it".
What
When a command the resolver runs fails, the resolver exits with that command's code and no traceback. A command whose output was captured, such as
dpkg-deb, has that output printed first. So the last line, which becomes the build's reason, is the failing command's own error.Validation
I ran the resolver in the base image on a package that doesn't exist:
subprocess.CalledProcessError: Command '[...]' returned non-zero exit status 100.E: Unable to locate package no-such-package-xyzTwo new unit tests cover the exit code, the missing traceback, and a captured command's error. This PR's integration run passed, resolving all 15 of its amd64 builds.
Not fixed here: the outage itself. If the next failure's reason shows a mirror or the PPA, the follow-up is a targeted change, such as a retry of the whole resolve or a different mirror.


Confidence Score: 5/5
The PR appears safe to merge.Summary
Failed resolver commands now exit without a traceback. Captured errors are printed before exit.
Reviews (2) · Last reviewed commit: "fix(computers): a failed command whose o..." · Reviewed by Greptile