It reads: --8<---------------cut here---------------start------------->8--- $ ./pre-inst-env guix time-machine -q -C channels.scm -- help ;;; (file "channels.scm") ;;; (try-canonicalize-path "channels.scm") ;;; (load-file #) ;;; (load-channels #) guix time-machine: error: 'channels.scm' did not return a list of channels --8<---------------cut here---------------end--------------->8--- In other words, instead of raising an error, it returns # and thus because ’load-channels’ tests against ’list?’ which # is obviously not then bang! Bah the easy fix is to check with ’unspecified?’ directly in ’load-channels’. But that does not really fix the issue, IMHO. The issue is that because a file named channels.scm is around in load-path. For instance, let say the non-existent file is named ’packages.scm’: --8<---------------cut here---------------start------------->8--- $ ls packages.scm ls: cannot access 'packages.scm': No such file or directory $ guix time-machine -q -C packages.scm -- help guix time-machine: error: 'packages.scm' did not return a list of channels --8<---------------cut here---------------end--------------->8--- In other words, is the comment accurate ;; Give 'load' an absolute file name so that it doesn't try to ;; search for FILE in %LOAD-PATH. ? Well, since I am not sure to get the use case of ’try-canonicalize-path’, then I don’t know what could be the best fix. But I guess ’canonicalize-path’ is not doing what we expect, right? Cheers, simon