Observed behaviour: Shepherd dies on loading invalid code. Expected behaviour: Send an error message to the log and back to the herd, that the given service could not be loaded. (Maybe a more detailed one, that helps in debugging). Continue operation without the offending service. Steps to reproduce: shepherd -s ~/shepherd.sock -c ok-service.scm & and then herd -s ~/shepherd.sock load root failing-service.scm results in the following backtrace: Backtrace: 15 (primitive-load "/root/.guix-profile/bin/shepherd") In shepherd.scm: 270:10 14 (main . _) 58:17 13 (call-with-server-socket "/root/shepherd.sock" _) 288:20 12 (_ #) In ice-9/boot-9.scm: 829:9 11 (catch system-error # …) In shepherd.scm: 325:9 10 (_) In ice-9/boot-9.scm: 829:9 9 (catch quit # …) In shepherd.scm: 378:11 8 (_) 380:50 7 (_ _ #) In shepherd/service.scm: 270:14 6 (condition->sexp #) In srfi/srfi-1.scm: 592:29 5 (map1 (#f "definition in expression context, where d…" …)) 592:29 4 (map1 ("definition in expression context, where defi…" …)) 592:17 3 (map1 (((line . 2) (column . 40) (filename . "fai…")) …)) 592:17 2 (map1 ((line . 2) (column . 40) (filename . "failing…"))) 589:5 1 (map #< result->sexp (8)> (line . 2)) In unknown file: 0 (scm-error wrong-type-arg "map" "Wrong type argument: …" …) ERROR: In procedure scm-error: In procedure map: Wrong type argument: (line . 2) herd: premature end-of-file while talking to shepherd and shepherd dies: [1]+ Kilépett(1) shepherd -s ~/shepherd.sock -c ok-service.scm at the end of ps ax output. The only relevant line in the logs is: May 8 13:35:46 localhost shepherd[365]: Loading failing-service.scm. This causes serious problems when shepherd is running as pid1. The content of the configuration files: ok-service.scm: (register-services (make #:provides '(ok-service) #:start ((const #t)))) failing-service.scm: (register-services (make #:provides '(failing-service) #:start ((const #t)(define x 1))))