Skip to content

compute build can validate the wrong cargo #1897

Description

@lonnen

Version

Fastly CLI version v16.0.0 (Homebrew)
Built with go version go1.26.5 darwin/arm64 (2026-08-27)
Viceroy version: viceroy 0.20.1

macOS 26.6.2, Homebrew 6.0.19

What happened

I used homebrew to install both rust and rustup on my machine. I have wasm32-wasip1 installed, but homebrew's rust and cargo shadows the rustup version. When I init a new compute service the preflight check detects wasm32-wasip1 and passes, and the build fails ~20 crates in with unhelpful advice that won't fix the issue.

In a clean directory I ran:

$ fastly compute init --non-interactive --language rust \
  --from https://github.com/fastly/compute-starter-kit-rust-default
$ fastly compute build

Result:

✓ Verifying fastly.toml
✓ Identifying package name
✓ Identifying toolchain
✗ Running [scripts.build]

INFO: Command output:
--------------------------------------------------------------------------------
   Compiling proc-macro2 v1.0.106


   ... ~20 more crates ...


error[E0463]: can't find crate for `core`
  = note: the `wasm32-wasip1` target may not be installed
  = help: consider downloading the target with `rustup target add wasm32-wasip1`

error[E0463]: can't find crate for `std`
  = note: the `wasm32-wasip1` target may not be installed
  = help: consider downloading the target with `rustup target add wasm32-wasip1`

error: could not compile `itoa` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `stable_deref_trait` (lib) due to 1 previous error


   ... 5 more `could not compile` lines ...
--------------------------------------------------------------------------------

ERROR: error during execution process (see 'command output' above): exit status 101.

Expected

I suppose I expected that it would init without an error, but after figuring out the PATH shadowing I'd be happy with a preflight check and an actionable error.

Investigation

The target is installed in rustup:

$ rustup target list --installed
aarch64-apple-darwin
wasm32-wasip1

$ rustup target add wasm32-wasip1
info: component rust-std for target wasm32-wasip1 is up to date

So I look at the rest of the environment to see which version of rust / cargo / the toolchain I'm running.

$ command -v cargo rustc
/opt/homebrew/bin/cargo
/opt/homebrew/bin/rustc

$ cargo --version
cargo 1.97.1 (c980f4866 2026-06-30) (Homebrew)

$ rustup which cargo
/Users/lonnen/.rustup/toolchains/stable-aarch64-apple-darwin/bin/cargo

$ echo "$PATH" | tr ":" '\n'
...
/Users/lonnen/.cargo/bin
/opt/homebrew/bin
/opt/homebrew/sbin
...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions