NixOps deployment to aarch64 from x86_64

I’m having trouble making NixOps work with an x86_64 host and an aarch64 target (RPi 3B), I can nixos-rebuild from the RPi just fine (e.g. it uses the binary cache) but when I try to deploy via NixOps the host tries to build from source every time.

I’m guessing this has something to do with the arch configuration not matching anything from the binary cache so it tries to build from source; so I’m guessing the crossSystem option is not being set correctly when building on an x86_64 host?

I’ve already tried a myriad of configs like crossSystem = { config = "aarch64-unknown-linux-gnu"; system = "aarch64-linux"; }; and also attaching the platform attr crossSystem = { platform = lib.system.platforms.aarch64-multiplatform; #also tried the rpi one } with no luck.

Packages built via cross compilation are considered completely different than packages built normally. When you rebuild on the rpi, you’re doing normal builds, so you pull packages from the binary cache. When build on x86_64, you’re telling it to cross compile, so it builds completely different packages for the entire system, but most of the cross builds aren’t cached on cache.nixos.org.