remote-build: detect early build errors
Metadata
Current evaluation
Merged. Improved remote build error detection to distinguish between pending builders and actual failures like missing config or timeouts. Approved by reviewer, passed CI, and modified 3 files (+131/-47 lines). Minor import fix applied.
Suggested action: —
No scores available.
Issue body
The easiest-to-reproduce example I have come across is to simply
ship the build repository to launchpad without a snapcraft.yaml. In
this case, snapcraft now fails with the following message from launchpad:
```
Sorry, an error occurred in Snapcraft:
Remote builder failed with error: 'Cannot find snapcraft.yaml in
https://cjp256@git.launchpad.net/~cjp256/+git/snapcraft-6cf35d52abc44b19a021b100cb883c8a/ master'
```
The original assumption was that the builder was busy, but now we can
determine if that's the case by checking if status is still "Pending".
It's seemingly quite rare (if ever?) to have the timeout condition hit,
but this commit maintains the checks should it happen:
```
Sorry, an error occurred in Snapcraft:
Remote builder failed with error: 'Timeout exceeded waiting for builder
to become ready.'
```
Signed-off-by: Chris Patterson <chris.patterson@canonical.com>
- [ ] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `./runtests.sh static`?
- [ ] Have you successfully run `./runtests.sh tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Improved remote build error detection to distinguish between pending builders and actual failures like missing config or timeouts. Approved by reviewer, passed CI, and modified 3 files (+131/-47 lines). Minor import fix applied. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a fix detecting early remote build errors by checking builder status instead of assuming it is busy. Timeout logic is preserved. Author addressed a minor unused import prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged fix that detects early remote build errors by checking builder status instead of assuming inactivity, preserving timeout handling. Author resolved an unused import prior to merge. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4432 fix(remote-build): improve logging and catch exceptions | snapcraft | merged | Merged pull request improving remote build logging and exception handling. Approved by reviewers, passed CI checks, and resolves issue #4399. | |
| #2594 remote build: don't send log files back to remote | snapcraft | merged | Merged a fix updating build log filters to prevent local logs from being sent to the remote builder. Approved by reviewer, passed CI, and modified two files with four additions and four deletions. | |
| #4480 fix(remote): return error when remote build failed | snapcraft | merged | Successfully merged fix for remote build failures that returns proper errors, resolving issue #4142. Approved by three reviewers with maintained code coverage across 13 files. | |
| #2837 remote-build: gpg-signing and usability fixes | snapcraft | merged | Merged changes disabling GPG signing for git commits to fix remote-build failures. Improves error messaging and commit formatting. Approved by reviewer, passed CI, and integrated into the codebase. | |
| #2634 remote build: fully preserve local sources and support packaging all sources | snapcraft | merged | Merged into remote-build. Preserves local sources and enables packaging all sources. Modified 13 files (+673/-528). Iterative updates addressed review feedback, fixed tests, resolved Git import issues, and updated dependencies. Approved by one reviewer. | |
| #1546 feat: remote build command | charmcraft | merged | Merged the remote build command feature. Approved by two reviewers and passing CI, the PR rebases prior work and adds remote build functionality. Follow-up issues were created to resolve related build-id recovery and dependency bugs. | |
| #769 feat: add the remote-build command | rockcraft | merged | Merged the remote-build command. Approved by three reviewers, the change adds 86 lines and removes 7 across nine files. Integrated by the maintainer without further comments or CI issues. | |
| #4826 fix(remote-build): fail if no artifacts are created | snapcraft | merged | Merged fix for issue #4783 that ensures remote builds fail when no artifacts are generated. Approved by two reviewers, passed CI, and merged with 214 additions and 4 deletions across two files. | |
| #3553 cli: make remote-build more user-friendly | snapcraft | merged | Merged improvements to remote-build CLI. Aligns --recover with --status, suppresses unnecessary public data prompts when checking status, and adds tests. Approved and merged. | |
| #2774 remote-build: architecture handling | snapcraft | merged | Merged architecture handling updates for remote-build. Modified one file with 36 additions and 30 deletions. Approved by one reviewer. Author noted missing CLI unit tests and plans a follow-up PR to address them. |