When a substitute is not available for all specified substitute servers, `guix weather` exits with a return code of '1', signaling failure.
For example: ------ $ ./pre-inst-env guix weather linux-libre; echo $? computing 1 package derivations for x86_64-linux... looking for 1 store items on http://ci.guix.gnu.org... http://ci.guix.gnu.org 100.0% substitutes available (1 out of 1) at least 234.8 MiB of nars (compressed) 86.3 MiB on disk (uncompressed) 38 queued builds aarch64-linux: 31 (81.6%) powerpc64le-linux: 1 (2.6%) armhf-linux: 1 (2.6%) i686-linux: 5 (13.2%) build rate: .00 builds per hour x86_64-linux: 0.00 builds per hour aarch64-linux: 0.00 builds per hour i686-linux: 0.00 builds per hour looking for 1 store items on http://bordeaux.guix.gnu.org... http://bordeaux.guix.gnu.org 0.0% substitutes available (0 out of 1) unknown substitute sizes 0.0 MiB on disk (uncompressed) (continuous integration information unavailable) 1 ------ I expected it to return successfully because a substitute is available, but I see that it could also make sense if "success" means that a substitute is available from all servers. However, the current behaviour breaks the use case of "wait until a substitute is available and then download it", like this for example: $ while true; do guix weather linux-libre && break; sleep 600; done; guix build --no-grafts linux-libre I'm not sure if this topic was discussed previously... your thoughts?