Consider the following, where 10.42.0.199 is a machine described in /etc/guix/machines.scm for offloading: $ ./pre-inst-env guix build php The following derivation will be built: /gnu/store/dj9qi9lj4xz0dk6agq9mndh8mhi8ifrg-php-7.4.1.drv process 8241 acquired build slot '/var/guix/offload/10.42.0.199:22/0' load on machine '10.42.0.199' is 0.04 (normalized: 0.04) building /gnu/store/dj9qi9lj4xz0dk6agq9mndh8mhi8ifrg-php-7.4.1.drv... ^C $ ./pre-inst-env guix build php --keep-failed The following derivation will be built: /gnu/store/dj9qi9lj4xz0dk6agq9mndh8mhi8ifrg-php-7.4.1.drv building /gnu/store/dj9qi9lj4xz0dk6agq9mndh8mhi8ifrg-php-7.4.1.drv... starting phase `set-SOURCE-DATE-EPOCH' phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds starting phase `set-paths' environment variable `PATH' set to `/gnu/store/niqa6dlvw4r2bfbabn65kq1kgdfwcb4b-pkg-config-0.29.2/bin:/gnu/store/qz06d1dz19wkrmibcr1485wqqia9zzhi-bison-3.5.1/bin:/gnu/store/3fzw8qb3cmrdkr46y55njjrfkvxd53lr-intltool-0.51.0/bin: [...] In the second case, the build is started on the local machine instead of being dispatched to the offload machine. Presumably, this is done so that the files are available locally; but I'd prefer if it'd offload and keep the files on the remote. An alternative would be to copy the remote build directory locally after failure.