The default use case is for users to have substitutes enabled and to fetch binaries from a build farm. The build farm tries to build all packages, but not all builds succeed. The daemon caches build failures. This information, however, is not available for users. The default behaviour of Guix is to attempt building the package locally. This is fine for packages that the build farm hasn’t attempted yet, but it is a waste of time when the build has already been attempted without success. I propose that “guix publish” should also convey information about failed builds. The Guix client can then abort right away without wasting time and power to attempt a doomed build. Users may override this with “--fallback” or a new option. -- Ricardo