Check existing issues
Bug description
The same config of snapcraft.yaml (plugin: rust, no rustup anywhere) relied on the plugin bootstrapping the toolchain itself, which 9.0.0 did and 9.0.1 doesn't.
No changes in the snapcraft.yaml and in the source code of the app itself, no changes in the repo at all.
First GHA passed with 9.0.0
/usr/bin/sudo groupadd --force --system lxd
/usr/bin/sudo usermod --append --groups lxd runner
Installing LXD...
/usr/bin/sudo snap install lxd
2026-06-21T17:22:11Z INFO Waiting for automatic snapd restart...
2026-06-21T17:22:12Z INFO Waiting for automatic snapd restart...
2026-06-21T17:22:13Z INFO Waiting for automatic snapd restart...
2026-06-21T17:22:14Z INFO Waiting for automatic snapd restart...
lxd (5.21/stable) 5.21.4-aee7e08 from Canonical** installed
Initialising LXD...
/usr/bin/sudo lxd init --auto
Installed docker related packages might interfere with LXD networking:
/usr/bin/sudo iptables -P FORWARD ACCEPT
Installing Snapcraft...
/usr/bin/sudo snap install --channel stable --classic snapcraft
snapcraft 9.0.0 from Canonical** installed
/usr/bin/sudo -u runner -E snapcraft --build-for=amd64
Running snapcraft without a command will not be possible in future releases. Use 'snapcraft pack' instead.
Launching managed ubuntu 24.04 instance...
Creating new instance from remote
Creating new base instance from remote
Creating new instance from base instance
Starting instance
Running snapcraft without a command will not be possible in future releases. Use 'snapcraft pack' instead.
Initializing lifecycle
Installing build-packages
Installing build-snaps
Pulling scenedeck
Fetching stage-packages
Downloading package: libdbus-1-3
Extracting stage package: libdbus-1-3
:: + craftctl default
error: rustup could not choose a version of rustc to run, because one wasn't specified explicitly, and no default is configured.
help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain.
Switch rustup channel to stable
:: + rustup update stable
:: info: syncing channel updates for stable-x86_64-unknown-linux-gnu
:: info: latest update on 2026-05-28 for version 1.96.0 (ac68faa20 2026-05-25)
:: Compiling hkdf v0.12.4
:: Compiling dbus v0.9.11
:: Compiling gdk4 v0.9.6
:: Compiling serde_with_macros v3.21.0
:: Compiling cbc v0.1.2
:: Compiling aes v0.8.4
:: Compiling gsk4 v0.9.6
:: Compiling http v1.4.2
:: Compiling gtk4-macros v0.9.5
:: Compiling thiserror-impl v2.0.18
:: Compiling time-core v0.1.8
:: Compiling base64 v0.22.1
:: Compiling thiserror v1.0.69
:: Compiling lazy_static v1.5.0
:: Compiling simdutf8 v0.1.5
:: Compiling num-conv v0.2.2
:: Compiling sha1_smol v1.0.1
:: Compiling time v0.3.47
:: Compiling tokio-websockets v0.13.2
:: Compiling sharded-slab v0.1.7
:: Compiling gtk4 v0.9.7
:: Compiling dbus-secret-service v4.1.0
:: Compiling serde_with v3.21.0
:: Compiling matchers v0.2.0
:: Compiling derive_more v2.1.1
:: Compiling tracing-log v0.2.0
:: Compiling tokio-stream v0.1.18
:: Compiling thiserror-impl v1.0.69
:: Compiling thread_local v1.1.9
:: Compiling uuid v1.23.3
:: Compiling ryu v1.0.23
:: Compiling nu-ansi-term v0.50.3
:: Compiling unsafe-libyaml v0.2.11
:: Compiling rgb v0.8.53
:: Compiling scenedeck v0.1.3 (/root/parts/scenedeck/build)
:: Compiling obws v0.15.0
:: Compiling serde_yaml v0.9.34+deprecated
:: Compiling tracing-subscriber v0.3.23
:: Compiling keyring v3.6.3
:: Compiling libadwaita v0.7.2
:: Finished `release` profile [optimized] target(s) in 1m 37s
:: Installing /root/parts/scenedeck/install/bin/scenedeck
:: Installed package `scenedeck v0.1.3 (/root/parts/scenedeck/build)` (executable `scenedeck`)
:: warning: be sure to add `/root/parts/scenedeck/install/bin` to your PATH to be able to run the installed binaries
:: + rm -f /root/parts/scenedeck/install/.crates.toml /root/parts/scenedeck/install/.crates2.json
:: + install -Dm644 data/io.scenedeck.app.desktop /root/parts/scenedeck/install/usr/share/applications/io.scenedeck.app.desktop
:: + install -Dm644 data/io.scenedeck.app.metainfo.xml /root/parts/scenedeck/install/usr/share/metainfo/io.scenedeck.app.metainfo.xml
:: + install -Dm644 data/io.scenedeck.app.gschema.xml /root/parts/scenedeck/install/usr/share/glib-2.0/schemas/io.scenedeck.app.gschema.xml
:: + install -Dm644 assets/io.scenedeck.app.svg /root/parts/scenedeck/install/usr/share/icons/hicolor/scalable/apps/io.scenedeck.app.svg
:: + glib-compile-schemas /root/parts/scenedeck/install/usr/share/glib-2.0/schemas
Skipping pull for scenedeck (already ran)
Skipping build for scenedeck (already ran)
Staging scenedeck (required to build 'gnome/gpu/cleanup')
Building gnome/gpu/cleanup
Building gnome/gpu/wrapper
:: + make -j4 GPU_INTERFACE=gpu-2404
:: install -D -m755 gpu-wrapper "/snap/command-chain"/"gpu-2404-wrapper"
:: sed --in-place 's/%GPU_INTERFACE%/gpu-2404/g' "/snap/command-chain"/"gpu-2404-wrapper"
:: + make -j4 install GPU_INTERFACE=gpu-2404 DESTDIR=/root/parts/gnome/gpu/wrapper/install
:: install -D -m755 gpu-wrapper "/root/parts/gnome/gpu/wrapper/install/snap/command-chain"/"gpu-2404-wrapper"
:: sed --in-place 's/%GPU_INTERFACE%/gpu-2404/g' "/root/parts/gnome/gpu/wrapper/install/snap/command-chain"/"gpu-2404-wrapper"
Building gnome/sdk
:: + make -j4
:: make: 'Makefile' is up to date.
:: + make -j4 install DESTDIR=/root/parts/gnome/sdk/install
:: install -D -m755 "hooks-configure-fonts" "/root/parts/gnome/sdk/install/snap/command-chain"/"hooks-configure-fonts"
:: install -D -m755 "desktop-launch" "/root/parts/gnome/sdk/install/snap/command-chain"/"desktop-launch"
:: install -D -m755 "run" "/root/parts/gnome/sdk/install/snap/command-chain"/"run"
Skipping stage for scenedeck (already ran)
Staging gnome/gpu/cleanup
Staging gnome/gpu/wrapper
Staging gnome/sdk
Priming scenedeck
Priming gnome/gpu/cleanup
:: + craftctl default
:: + /root/parts/gnome/gpu/cleanup/src/bin/gpu-2404-cleanup mesa-2404
:: + mkdir -p /root/prime/gpu-2404
Priming gnome/gpu/wrapper
Priming gnome/sdk
Packing...
Reading snap metadata...
Running linters...
Running linter: classic
Running linter: gpu
Running linter: library
Running linter: metadata
Lint warnings:
- metadata: Metadata field 'contact' is missing or empty. (https://documentation.ubuntu.com/snapcraft/stable/reference/project-file/snapcraft-yaml/#contact)
Creating snap package...
Packed scenedeck_0.1.3_amd64.snap
the same definition after couple of days with 9.0.1
Ensuring runner is in the lxd group...
/usr/bin/sudo groupadd --force --system lxd
/usr/bin/sudo usermod --append --groups lxd runner
Installing LXD...
/usr/bin/sudo snap install lxd
2026-07-08T19:33:53Z INFO Waiting for automatic snapd restart...
2026-07-08T19:33:54Z INFO Waiting for automatic snapd restart...
2026-07-08T19:33:55Z INFO Waiting for automatic snapd restart...
2026-07-08T19:33:56Z INFO Waiting for automatic snapd restart...
lxd (5.21/stable) 5.21.5-f2a1a0e from Canonical** installed
Initialising LXD...
/usr/bin/sudo lxd init --auto
Installed docker related packages might interfere with LXD networking:
/usr/bin/sudo iptables -P FORWARD ACCEPT
Installing Snapcraft...
/usr/bin/sudo snap install --channel stable --classic snapcraft
snapcraft 9.0.1 from Canonical** installed
/usr/bin/sudo -u runner -E snapcraft pack --build-for=amd64
Launching managed ubuntu 24.04 instance...
Creating new instance from remote
Creating new base instance from remote
Creating new instance from base instance
Starting instance
Initializing lifecycle
Installing build-packages
Installing build-snaps
Pulling rust-deps
Pulling scenedeck
Fetching stage-packages
Downloading package: libdbus-1-3
Extracting stage package: libdbus-1-3
:: + craftctl default
error: rustup could not choose a version of rustc to run, because one wasn't specified explicitly, and no default is configured.
help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain.
Switch rustup channel to stable
:: + rustup update stable
:: info: syncing channel updates for stable-x86_64-unknown-linux-gnu
:: info: latest update on 2026-06-30 for version 1.96.1 (31fca3adb 2026-06-26)
:: info: downloading 6 components
::
:: stable-x86_64-unknown-linux-gnu installed - rustc 1.96.1 (31fca3adb 2026-06-26)
::
:: info: default toolchain set to stable-x86_64-unknown-linux-gnu
:: info: self-update is disabled for this build of rustup
:: info: any updates to rustup will need to be fetched with your system package manager
:: + rustup default stable
:: info: using existing install for stable-x86_64-unknown-linux-gnu
::
:: info: default toolchain set to stable-x86_64-unknown-linux-gnu
:: stable-x86_64-unknown-linux-gnu unchanged - rustc 1.96.1 (31fca3adb 2026-06-26)
::
:: ++ sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml
:: ++ head -n1
:: + version=0.1.6
:: + '[' -z 0.1.6 ']'
:: + craftctl set version=0.1.6
Pulling gnome/gpu/cleanup
Pulling gnome/gpu/wrapper
Pulling gnome/sdk
Building rust-deps
Skipping pull for rust-deps (already ran)
Skipping build for rust-deps (already ran)
Staging rust-deps (required to build 'scenedeck')
Building scenedeck
Environment validation failed for part 'scenedeck': 'rustup' not found.
Failed to run snapcraft in instance
Full execution log: '/home/runner/.local/state/snapcraft/log/snapcraft-20260708-193435.955364.log'
Error: The process '/usr/bin/sudo' failed with exit code 1
Steps to reproduce
Provide step-by-step instructions to reproduce the bug.
Environment
We need to understand the context in which Snapcraft failed. Please let us know if you are running Snapcraft in destructive mode, whether you are using LXD or Multipass, and which operating system you are running Snapcraft on.
https://github.com/worxbend/scenedeck/blob/main/.github/workflows/snap.yml
snapcraft.yaml
If the issue is specific to a project, share its `snapcraft.yaml`. This field automatically renders as YAML, so you don't need to add special formatting.
https://github.com/worxbend/scenedeck/blob/1304eb5e00d1ce30796a306397912a709758a291/snap/snapcraft.yaml
name: scenedeck
title: SceneDeck
summary: Role-aware OBS scene and audio controller
description: |
SceneDeck is a native Linux controller for structured OBS Studio setups.
It provides a role-aware surface for live scene switching, scene dependency
inspection, OBS output control, and an integrated audio mixer.
base: core24
adopt-info: scenedeck
grade: stable
confinement: strict
compression: lzo
license: MIT
icon: usr/share/icons/hicolor/scalable/apps/io.scenedeck.app.svg
source-code:
- https://github.com/worxbend/scenedeck
issues:
- https://github.com/worxbend/scenedeck/issues
website:
- https://github.com/worxbend/scenedeck
platforms:
amd64:
build-on: amd64
build-for: amd64
arm64:
build-on: arm64
build-for: arm64
apps:
scenedeck:
command: bin/scenedeck
extensions: [gnome]
desktop: usr/share/applications/io.scenedeck.app.desktop
common-id: io.scenedeck.app
plugs:
- network
parts:
scenedeck:
plugin: rust
source: .
build-packages:
- libadwaita-1-dev
- libdbus-1-dev
- libglib2.0-bin
- libglib2.0-dev
- libgtk-4-dev
- pkg-config
stage-packages:
- libdbus-1-3
override-pull: |
craftctl default
version="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)"
if [ -z "${version}" ]; then
echo "failed to read package version from Cargo.toml" >&2
exit 1
fi
craftctl set version="${version}"
override-build: |
craftctl default
install -Dm644 data/io.scenedeck.app.desktop \
"${CRAFT_PART_INSTALL}/usr/share/applications/io.scenedeck.app.desktop"
install -Dm644 data/io.scenedeck.app.metainfo.xml \
"${CRAFT_PART_INSTALL}/usr/share/metainfo/io.scenedeck.app.metainfo.xml"
install -Dm644 data/io.scenedeck.app.gschema.xml \
"${CRAFT_PART_INSTALL}/usr/share/glib-2.0/schemas/io.scenedeck.app.gschema.xml"
install -Dm644 assets/io.scenedeck.app.svg \
"${CRAFT_PART_INSTALL}/usr/share/icons/hicolor/scalable/apps/io.scenedeck.app.svg"
glib-compile-schemas "${CRAFT_PART_INSTALL}/usr/share/glib-2.0/schemas"
Log output
Provide any relevant logging. This field automatically renders as a log, so you don't need to add special formatting.
Ensuring runner is in the lxd group...
/usr/bin/sudo groupadd --force --system lxd
/usr/bin/sudo usermod --append --groups lxd runner
Installing LXD...
/usr/bin/sudo snap install lxd
2026-07-08T19:33:53Z INFO Waiting for automatic snapd restart...
2026-07-08T19:33:54Z INFO Waiting for automatic snapd restart...
2026-07-08T19:33:55Z INFO Waiting for automatic snapd restart...
2026-07-08T19:33:56Z INFO Waiting for automatic snapd restart...
lxd (5.21/stable) 5.21.5-f2a1a0e from Canonical** installed
Initialising LXD...
/usr/bin/sudo lxd init --auto
Installed docker related packages might interfere with LXD networking:
/usr/bin/sudo iptables -P FORWARD ACCEPT
Installing Snapcraft...
/usr/bin/sudo snap install --channel stable --classic snapcraft
snapcraft 9.0.1 from Canonical** installed
/usr/bin/sudo -u runner -E snapcraft pack --build-for=amd64
Launching managed ubuntu 24.04 instance...
Creating new instance from remote
Creating new base instance from remote
Creating new instance from base instance
Starting instance
Initializing lifecycle
Installing build-packages
Installing build-snaps
Pulling rust-deps
Pulling scenedeck
Fetching stage-packages
Downloading package: libdbus-1-3
Extracting stage package: libdbus-1-3
:: + craftctl default
error: rustup could not choose a version of rustc to run, because one wasn't specified explicitly, and no default is configured.
help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain.
Switch rustup channel to stable
:: + rustup update stable
:: info: syncing channel updates for stable-x86_64-unknown-linux-gnu
:: info: latest update on 2026-06-30 for version 1.96.1 (31fca3adb 2026-06-26)
:: info: downloading 6 components
::
:: stable-x86_64-unknown-linux-gnu installed - rustc 1.96.1 (31fca3adb 2026-06-26)
::
:: info: default toolchain set to stable-x86_64-unknown-linux-gnu
:: info: self-update is disabled for this build of rustup
:: info: any updates to rustup will need to be fetched with your system package manager
:: + rustup default stable
:: info: using existing install for stable-x86_64-unknown-linux-gnu
::
:: info: default toolchain set to stable-x86_64-unknown-linux-gnu
:: stable-x86_64-unknown-linux-gnu unchanged - rustc 1.96.1 (31fca3adb 2026-06-26)
::
:: ++ sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml
:: ++ head -n1
:: + version=0.1.6
:: + '[' -z 0.1.6 ']'
:: + craftctl set version=0.1.6
Pulling gnome/gpu/cleanup
Pulling gnome/gpu/wrapper
Pulling gnome/sdk
Building rust-deps
Skipping pull for rust-deps (already ran)
Skipping build for rust-deps (already ran)
Staging rust-deps (required to build 'scenedeck')
Building scenedeck
Environment validation failed for part 'scenedeck': 'rustup' not found.
Failed to run snapcraft in instance
Full execution log: '/home/runner/.local/state/snapcraft/log/snapcraft-20260708-193435.955364.log'
Error: The process '/usr/bin/sudo' failed with exit code 1
Check existing issues
Bug description
The same config of snapcraft.yaml (plugin: rust, no rustup anywhere) relied on the plugin bootstrapping the toolchain itself, which 9.0.0 did and 9.0.1 doesn't.
No changes in the snapcraft.yaml and in the source code of the app itself, no changes in the repo at all.
First GHA passed with 9.0.0
the same definition after couple of days with 9.0.1
Steps to reproduce
Provide step-by-step instructions to reproduce the bug.
Environment
We need to understand the context in which Snapcraft failed. Please let us know if you are running Snapcraft in destructive mode, whether you are using LXD or Multipass, and which operating system you are running Snapcraft on.
https://github.com/worxbend/scenedeck/blob/main/.github/workflows/snap.yml
snapcraft.yaml
Log output