fix(ci): pin cargo-lambda to 1.9.2 so the arm64 lambda links under Rust 1.98 - #19
Conversation
…break) Deploy run 32498562051 failed to link the arm64 Lambda while every CI check was green, because nothing in CI performed the cross-compile that deploy.yml performs. This adds that build as a PR gate. It is expected to FAIL on this commit, reproducing the deploy failure for the right reason: unsupported linker arg --fix-cortex-a53-843419. Co-Authored-By: Claude <noreply@anthropic.com>
…st 1.98 Rust 1.98.0 began emitting -Wl,--fix-cortex-a53-843419 in the aarch64 link args. Zig's linker rejects it, and cargo-lambda 1.9.1 bundles cargo-zigbuild 0.20.1, which does not filter it, so deploy run 32498562051 failed to link on a tip nothing in the repo had changed. cargo-lambda 1.9.2 carries the cargo-zigbuild 0.23.0 uplift that filters the flag. Both cargo-lambda and ziglang are now pinned rather than floating, in the deploy step and in the CI gate that mirrors it, so the two always build with the same toolchain and a move arrives as a reviewed bump. Co-Authored-By: Claude <noreply@anthropic.com>
Reproduction evidence, stated honestlyThe regression gate was pushed first, without the fix, on That is not the gate failing to work. The diagnosis is confirmed by the version differential instead, which is stronger than a single
Same zig throughout. Rust moving 1.97.1 to 1.98.0 breaks it; cargo-lambda moving 1.9.1 to 1.9.2 This is the strongest argument for the pin, not against it. Before this PR, both the deploy step Fix commit 95de0d2 is green on all seven |
Task
The
maintip of on.dig.net (f6bd45de, v0.5.11) is RED ondeploy, which freezes the superprojectgitlink pointer. This unfreezes it by fixing the actual break and adding the gate that would have
caught it before merge.
Root cause (not the symptom)
Deploy run
32498562051 failed at
cargo lambda build --release --arm64:Nothing in this repo changed to cause it. The two inputs were compared across runs:
Rust 1.98.0 (released 2026-08-20) began emitting
-Wl,--fix-cortex-a53-843419in the link argsfor
aarch64-unknown-linux-gnu. Zig's linker rejects that flag. cargo-zigbuild filters it as of0.23.0 (rust-cross/cargo-zigbuild#452), and cargo-lambda picked that up in 1.9.2
("fix: support Rust 1.98 ARM64 builds", cargo-lambda/cargo-lambda#937, published 2026-08-21) —
cargo-lambda 1.9.1 bundles cargo-zigbuild 0.20.1, which does not filter it.
So this is a floating-toolchain drift:
toolchain: stablemoved under an unpinnedpip install cargo-lambda ziglang, and the two lines crossed.Live service impact: NONE
The resolver is up and answering.
https://test.on.dig.net/returns404from the Lambda with theresolver's own headers (
X-Dig-URN,X-Dig-Store,X-Dig-Rootinaccess-control-expose-headers), i.e. an unregistered-subdomain answer from live code, not aninfrastructure error. The apex
on.dig.nethas no record by design;*.on.dig.netresolves to itsown CloudFront distribution. The failed deploy left the live Lambda at the v0.5.10 build rather than
breaking it — the v0.5.11 URN-parser conformance change (#18) is what has not reached production.
The fix
cargo-lambda==1.9.2andziglang==0.16.0indeploy.yml. 1.9.2 carries thecargo-zigbuild uplift that filters the flag. Both are now pinned rather than floating, so this
class of break arrives as a deliberate bump instead of arriving on its own at deploy time.
lambda-buildCI job performing exactly the cross-compiledeploy.ymlperforms, minusAWS. This is the regression test: the gap that made this a deploy-time discovery was that the
arm64 build existed in no PR gate, so every check was green on a tip that could not deploy.
Regression test evidence (§2.2)
The gate was pushed FIRST, without the fix, and observed failing for the right reason on
c8f43d5—unsupported linker arg: --fix-cortex-a53-843419, the same error as the deploy run. The fix committhen turns it green. Both run ids are recorded in a comment on this PR.
Blast radius
CI/deploy workflow only. No Rust, Terraform, or asset changes; no change to the resolver's behaviour,
its CloudFront distribution, its asset bucket, or its Lambda configuration. on.dig.net's dedicated
infrastructure is untouched.
Out of scope, reported not fixed
This crate is on the chia 0.26 line (
chia-protocol/chia-bls/clvm-*0.26.0) while theecosystem has moved to 0.36. §2.4b would normally have this PR bring those current, but that is a
type-identity change across the resolver's URN/puzzle-hash paths and does not belong in a PR whose
job is to unfreeze a red deploy. Filed separately.