Nix suddenly complains about string coersion

Hi,

I am using Home Manager to configure XMonad. Everything worked fine until now, Home Manager complains about

error: cannot coerce null to a string, at /home/dominik/.nix-defexpr/channels/home-manager/modules/services/window-managers/xmonad.nix:105:11

See the full trace below.
Do you have any idea? Did anything change within Home Manager or is this expected to be an upstream change?

Internally, I creating an “out of store” link, so this might be the problem…
Let me know if more detailed debugging information is necessary!

Thank you!

The full trace of home-manager switch:

error: while evaluating the attribute 'buildCommand' of the derivation 'home-manager-generation' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/pkgs/build-support/trivial-builders.nix:7:7:
while evaluating the attribute 'buildCommand' of the derivation 'home-manager-files' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/pkgs/build-support/trivial-builders.nix:7:7:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:252:10, called from undefined position:
while evaluating anonymous function at /home/dominik/.nix-defexpr/channels/home-manager/modules/files.nix:318:28, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:252:16:
while evaluating 'concatMapStringsSep' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/strings.nix:110:5, called from /home/dominik/.nix-defexpr/channels/home-manager/modules/files.nix:320:13:
while evaluating 'escapeShellArg' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/strings.nix:318:20, called from undefined position:
while evaluating 'sourceStorePath' at /home/dominik/.nix-defexpr/channels/home-manager/modules/files.nix:15:21, called from /home/dominik/.nix-defexpr/channels/home-manager/modules/files.nix:321:16:
while evaluating the attribute 'source' at undefined position:
while evaluating 'g' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:294:19, called from undefined position:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:139:72, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:297:20:
while evaluating the attribute 'value' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:523:9:
while evaluating the option `home.file..xsession.source':
while evaluating the attribute 'mergedValue' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:555:5:
while evaluating the attribute 'values' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:549:9:
while evaluating the attribute 'values' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:648:7:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:535:28, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:535:17:
while evaluating definitions from `/home/dominik/.nix-defexpr/channels/home-manager/modules/files.nix':
while evaluating 'dischargeProperties' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:607:25, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:536:137:
while evaluating the attribute 'condition' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:691:14:
while evaluating the attribute 'text' at undefined position:
while evaluating 'g' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:294:19, called from undefined position:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:139:72, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:297:20:
while evaluating the attribute 'value' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:523:9:
while evaluating the option `home.file..xsession.text':
while evaluating the attribute 'mergedValue' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:555:5:
while evaluating the attribute 'values' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:549:9:
while evaluating the attribute 'values' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:648:7:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:535:28, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:535:17:
while evaluating definitions from `/home/dominik/.nix-defexpr/channels/home-manager/modules/xsession.nix':
while evaluating 'dischargeProperties' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:607:25, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:536:137:
while evaluating the attribute 'value' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:390:44:
while evaluating the attribute 'windowManager.command' at undefined position:
while evaluating 'g' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:294:19, called from undefined position:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:139:72, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/attrsets.nix:297:20:
while evaluating the attribute 'value' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:523:9:
while evaluating the option `xsession.windowManager.command':
while evaluating the attribute 'mergedValue' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:555:5:
while evaluating the attribute 'values' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:549:9:
while evaluating the attribute 'values' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:648:7:
while evaluating anonymous function at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:535:28, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:535:17:
while evaluating definitions from `/home/dominik/.nix-defexpr/channels/home-manager/modules/services/window-managers/xmonad.nix':
while evaluating 'dischargeProperties' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:607:25, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:536:137:
while evaluating 'dischargeProperties' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:607:25, called from /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:613:11:
while evaluating the attribute 'content' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/lib/modules.nix:691:14:
while evaluating the attribute 'buildCommand' of the derivation 'xmonad-compile' at /nix/store/mx35bpln41pkca6s0adqwsiibqz7k5v1-nixos-21.05pre279012.ad47284f8b0/nixos/pkgs/build-support/trivial-builders.nix:7:7:
cannot coerce null to a string, at /home/dominik/.nix-defexpr/channels/home-manager/modules/services/window-managers/xmonad.nix:105:11

Can you post a link to your code?

I think the relevant part is the following:

  xsession.windowManager.xmonad.enable = true;
  xsession.windowManager.xmonad.enableContribAndExtras = true;
  home.file.xmonad.source = mkExtLink "xmonad";
  home.file.xmonad.target = ".xmonad";

where

  # Configuration directory for external (out of store) links.
  configDirExt = "${config.xdg.configHome}/nixpkgs/config-extern";
  # Make external (out of store) link at arbitrary location. Check if path exists.
  mkExtLinkAt = import ./lib/mkExistingOutOfStoreLink.nix config.lib.file.mkOutOfStoreSymlink;
  # Make external (out of store) link and check if path exists.
  mkExtLink = mkExtLinkAt configDirExt;

and ./lib/mkExistingOutOfStoreLink.nix is the folowing function

mkOutOfStoreSymlink: externalConfigurationDirectory: path:

let path' = externalConfigurationDirectory + "/" + path;
in
if builtins.pathExists path'
then mkOutOfStoreSymlink path'
else builtins.abort ("Path does not exist: " + path')

See XMonad config file is no longer optional · Issue #1891 · nix-community/home-manager · GitHub.