Summary
The Spin adapter compiles to a wasm32-wasip2 component and passes its router-level contract tests under wasmtime, but it cannot actually serve: spin up fails to link on every released Spin runtime.
Reproduction
edgezero-cli serve --adapter spin
# or directly:
spin up --from crates/mocktioneer-adapter-spin/spin.toml \
--runtime-config-file crates/mocktioneer-adapter-spin/runtime-config.toml
Fails with (Spin 3.6.3):
Error: component imports instance wasi:http/types@0.3.0-rc-2026-03-15,
but a matching implementation was not found in the linker
Root cause
cargo tree shows the chain:
mocktioneer-adapter-spin → edgezero-adapter-spin → spin-sdk v6.0.0
→ wasip3 v0.6.0+wasi-0.3.0-rc-2026-03-15
spin-sdk 6.0.0 imports wasi:http@0.3.0-rc, which no released Spin runtime provides (they expose wasi:http@0.2). This is an SDK/runtime ABI mismatch.
Why this can't be fixed in mocktioneer
edgezero-adapter-spin pins spin-sdk 6 as a workspace dependency with no feature lever to select the wasi:http@0.2 ABI, so mocktioneer cannot downgrade or opt out. The fix belongs upstream in EdgeZero's spin-sdk pin (align the SDK / generated component ABI / required Spin CLI runtime version).
Impact
Current state
Documented as a known limitation in docs/guide/configuration.md and CLAUDE.md (PR #110) rather than shipping a knowingly-red CI gate.
Done when
Summary
The Spin adapter compiles to a
wasm32-wasip2component and passes its router-level contract tests underwasmtime, but it cannot actually serve:spin upfails to link on every released Spin runtime.Reproduction
edgezero-cli serve --adapter spin # or directly: spin up --from crates/mocktioneer-adapter-spin/spin.toml \ --runtime-config-file crates/mocktioneer-adapter-spin/runtime-config.tomlFails with (Spin 3.6.3):
Root cause
cargo treeshows the chain:spin-sdk 6.0.0importswasi:http@0.3.0-rc, which no released Spin runtime provides (they exposewasi:http@0.2). This is an SDK/runtime ABI mismatch.Why this can't be fixed in mocktioneer
edgezero-adapter-spinpinsspin-sdk 6as a workspace dependency with no feature lever to select thewasi:http@0.2ABI, so mocktioneer cannot downgrade or opt out. The fix belongs upstream in EdgeZero'sspin-sdkpin (align the SDK / generated component ABI / required Spin CLI runtime version).Impact
spin up/spin deployare unusable → blocks As developer I want to deploy moctkioneer to Fermyon cloud #84 (deploy to Fermyon Cloud).spin upsmoke test; only thewasmtimerouter contract test runs.Current state
Documented as a known limitation in
docs/guide/configuration.mdandCLAUDE.md(PR #110) rather than shipping a knowingly-red CI gate.Done when
spin-sdkpin / component ABI with a released Spin runtime.spin upserves mocktioneer locally.spin upsmoke test that curls/.docs/guide/configuration.md+CLAUDE.mdare removed.