← Back to issue list

Unclear remote build error with ``--build-for`` on core20

View original Github issue

Metadata

Project
snapcraft
Number
#5817
Type
issue
State
open
Author
bepri
Labels
Status: Triaged Type: Bug
Created
Updated
Closed
—

Current evaluation

Legacy remote-build rejected --build-for on core20 long-form architectures with a cryptic 'architecture list is already set' error. Maintainers traced it to a long-standing Launchpad/legacy builder limitation; fixed as a better error message in #6090, and the legacy builder was later removed entirely.

Suggested action: close resolved

Reason: The underlying defect was never a regression, so the scope mr-cal outlined in the last comment (test 7.5/8.14/earlier 8.x, then either document or fix) resolved to the documentation/warning path: PR #6090 landed as commit 527ff6d2c ('feat(remote-build/legacy): improve error when building with --build-for') and was recorded as addressing this issue, with PR #5819 closed as superseded by it. The scenario is now moot regardless, because commit b08f1a66e ('chore!: remove legacy remote builder (#5994)') deleted the code path that produced the error, and grepping the current tree for both 'architecture list is already set' and 'Cannot use --build-on' returns no matches. Impact is low as an end-user matter because the affected surface was the deprecated core20 legacy builder, which no longer exists.

Evaluated by: mr-cal-bot

Impact: 25 Quick Win: 12 Complexity: 45 Confidence: 92 Actionability: 85

Issue body

### Bug Description When building a core20 project _not_ using the architecture shorthand, `--build-for` produces the following error: ``` Error: Cannot use --build-on, architecture list is already set in snapcraft.yaml. ``` ### To Reproduce Run `snapcraft remote-build --build-for amd64` with the attached project. ### Environment snapcraft 8.12.0, ubuntu 25.04 ### snapcraft.yaml ```yaml name: testing # you probably want to 'snapcraft register <name>' base: core20 # the base snap is the execution environment for this snap version: "0.1" # just for humans, typically '1.2+git' or '1.3.2' summary: Single-line elevator pitch for your amazing snap # 79 char long summary description: | This is my-snap's description. You have a paragraph or two to tell the most important story about your snap. Keep it under 100 words though, we live in tweetspace and your description wants to look good in the snap store. grade: devel # must be 'stable' to release into candidate/stable channels confinement: devmode # use 'strict' once you have the right plugs and slots architectures: - build-on: [arm64] run-on: [arm64] - build-on: [amd64] run-on: [amd64] parts: my-part: # See 'snapcraft plugins' plugin: nil ``` ### Relevant log output ```shell n/a ``` ### Additional context _No response_

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 25
Quick Win: 12
Complexity: 45
Confidence: 92
Actionability: 85
close resolved Legacy remote-build rejected --build-for on core20 long-form architectures with a cryptic 'architecture list is already set' error. Maintainers traced it to a long-standing Launchpad/legacy builder limitation; fixed as a better error message in #6090, and the legacy builder was later removed entirely.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 19
Complexity: 20
Confidence: 90
Actionability: 80
close resolved Legacy remote builder shows unclear error when using --build-for with long-form architecture definitions in core20. Resolved by PR #6090 which improved the error messaging.
qwen/qwen3.8-27b
Impact: 40
Quick Win: 22
Staleness: 25
Complexity: 45
Confidence: 85
Support Request: 10
keep open core20 remote-build with --build-for and long-form architectures emits a misleading --build-on error. Triaged by maintainers as a likely legacy limitation; addressed in 8.14.4 via PR #6090 which improved the error message.
qwen/qwen3.6-35b-a3b
Staleness: 45
Complexity: 20
Confidence: 85
Support Request: 10
keep open Remote build fails with unclear error when using --build-for alongside architectures in snapcraft.yaml. Maintainer suspects legacy limitation and proposed scoping work to verify version behavior and either document the limitation or plan a fix.
qwen3.6-35b-a3b-mtp-q6
Staleness: 45
Complexity: 40
Confidence: 90
Support Request: 10
keep open Reports unclear error when using --build-for with core20 projects that explicitly define architectures. Currently under maintainer investigation to determine if it is a regression or legacy limitation.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: snapcraft#6090 (confidence 90%)

    Merged PR whose description states it addresses #5817; commit 527ff6d2c ships the actionable error for the legacy builder.

  • Superseded By: snapcraft#5819 (confidence 88%)

    The original fix attempt; closed as superseded by #6090 after testing showed --build-for still failed with long-form architectures on core20.

  • Related To: snapcraft#5994 (confidence 75%)

    Commit b08f1a66e removed the legacy remote builder entirely, deleting the code path that raised the error; inferred from the changelog rather than an explicit issue cross-reference.

Related issues

Issue Project State Summary Similarity
#6090 feat(remote-build/legacy): improve error when building with --build-for snapcraft merged Merged PR #6090 improved legacy remote-builder errors for core20, clarifying that --build-for requires shorthand architectures because of Launchpad limitations. It addresses #5817 and supersedes #5819.
82%
#3151 cli: disable --target-arch support on core20 snapcraft merged Merged PR #3151 as commit 8942d89d2, disabling --target-arch for core20 because cross-compilation had limitations; architecture targeting was deferred pending better --build-on support.
74%
#5819 fix(legacy): accept --build-for on long-form architecture remote build snapcraft closed PR #5819 was closed as superseded by merged PR #6090 (commit 527ff6d2c), which improved the legacy remote-builder’s --build-for error handling instead.
73%
#4895 fix(remotebuild): require core20 snaps to use the legacy remote builder snapcraft merged Merged in #4895 (d9c8781a1), requiring core20 remote builds to use the legacy builder because the new builder could not parse core20 snapcraft.yaml files; fixes #4886.
72%
#4886 Use legacy remote builder for core20 snaps snapcraft closed Fixed by merged PR #4895 (commit d9c8781a1), routing core20 snaps to the legacy remote builder because the new builder could not parse architectures with run-on.
72%