Failed to insert entry: invalid object specified - .editorconfig

I’m trying to install nixos on my newly added SSD on my headless visionfive2. I get this really obscure error when trying to run nixos-install.

λ sudo nixos-install --root /mnt --flake github:GetPsyched/homeless-shelter/ffb6a407a726ae0e9840f937369182454c5177a1#drone
copying channel...
building the flake in github:GetPsyched/homeless-shelter/ffb6a407a726ae0e9840f937369182454c5177a1?narHash=sha256-dsFMtRdG%2Bo34VCmIt4p3MFjEC%2Bj%2BcRMDlVV7RtLVK%2Bg%3D...
error:
       … while calling the 'seq' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:359:18:
          358|         options = checked options;
          359|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          360|         _module = checked (config._module);

       … while evaluating a branch condition
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:295:9:
          294|       checkUnmatched =
          295|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |         ^
          296|           let

       (stack trace truncated; use '--show-trace' to show the full, detailed trace)

       error: adding a file to a tree builder: failed to insert entry: invalid object specified - .editorconfig
Full trace
error:
       … while calling the 'seq' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:359:18:
          358|         options = checked options;
          359|         config = checked (removeAttrs config [ "_module" ]);
             |                  ^
          360|         _module = checked (config._module);

       … while evaluating a branch condition
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:295:9:
          294|       checkUnmatched =
          295|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |         ^
          296|           let

       … in the left operand of the AND (&&) operator
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:295:72:
          294|       checkUnmatched =
          295|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |                                                                        ^
          296|           let

       … in the left operand of the AND (&&) operator
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:295:33:
          294|       checkUnmatched =
          295|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |                                 ^
          296|           let

       … while evaluating a branch condition
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:286:9:
          285|         in
          286|         if declaredConfig._module.freeformType == null then
             |         ^
          287|           declaredConfig

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:273:28:
          272|           # For definitions that have an associated option
          273|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                            ^
          274|

       … while calling 'mapAttrsRecursiveCond'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/attrsets.nix:1177:14:
         1176|   mapAttrsRecursiveCond =
         1177|     cond: f: set:
             |              ^
         1178|     let

       … while calling the 'mapAttrs' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/attrsets.nix:1186:5:
         1185|     in
         1186|     recurse [ ] set;
             |     ^
         1187|

       … while evaluating the attribute 'matchedOptions'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:856:15:
          855|     {
          856|       inherit matchedOptions;
             |               ^
          857|

       … while calling the 'mapAttrs' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:846:24:
          845|
          846|       matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
             |                        ^
          847|

       … while calling the 'mapAttrs' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:794:23:
          793|
          794|       resultsByName = mapAttrs (
             |                       ^
          795|         name: decls:

       … while calling the 'zipAttrsWith' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:710:21:
          709|       # an attrset 'name' => list of submodules that declare ‘name’.
          710|       declsByName = zipAttrsWith (n: v: v) (
             |                     ^
          711|         map (

       … while calling the 'map' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:711:9:
          710|       declsByName = zipAttrsWith (n: v: v) (
          711|         map (
             |         ^
          712|           module:

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:265:30:
          264|         in
          265|         mergeModules prefix (reverseList collected);
             |                              ^
          266|

       … while calling 'reverseList'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/lists.nix:1103:5:
         1102|   reverseList =
         1103|     xs:
             |     ^
         1104|     let

       … while calling the 'genList' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/lists.nix:1107:5:
         1106|     in
         1107|     genList (n: elemAt xs (l - n - 1)) l;
             |     ^
         1108|

       … while evaluating the second argument passed to builtins.genList

       … while calling the 'length' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/lists.nix:1105:11:
         1104|     let
         1105|       l = length xs;
             |           ^
         1106|     in

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:251:13:
          250|           collected =
          251|             collectModules class (specialArgs.modulesPath or "") (regularModules ++ [ internalModule ])
             |             ^
          252|               (

       … while calling anonymous lambda
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:522:34:
          521|     in
          522|     modulesPath: initialModules: args:
             |                                  ^
          523|     filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:523:5:
          522|     modulesPath: initialModules: args:
          523|     filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
             |     ^
          524|

       … while calling 'filterModules'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:492:9:
          491|         modulesPath:
          492|         { disabled, modules }:
             |         ^
          493|         let

       … while calling the 'map' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:516:9:
          515|         in
          516|         map (attrs: attrs.module) (genericClosure {
             |         ^
          517|           startSet = keyFilter modules;

       … while calling the 'genericClosure' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:516:36:
          515|         in
          516|         map (attrs: attrs.module) (genericClosure {
             |                                    ^
          517|           startSet = keyFilter modules;

       … while calling the 'filter' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:517:22:
          516|         map (attrs: attrs.module) (genericClosure {
          517|           startSet = keyFilter modules;
             |                      ^
          518|           operator = attrs: keyFilter attrs.modules;

       … while calling anonymous lambda
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:514:31:
          513|           disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
          514|           keyFilter = filter (attrs: !elem attrs.key disabledKeys);
             |                               ^
          515|         in

       … in the argument of the not operator
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:514:39:
          513|           disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
          514|           keyFilter = filter (attrs: !elem attrs.key disabledKeys);
             |                                       ^
          515|         in

       … while calling the 'elem' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:514:39:
          513|           disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
          514|           keyFilter = filter (attrs: !elem attrs.key disabledKeys);
             |                                       ^
          515|         in

       … while calling the 'concatMap' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:513:26:
          512|
          513|           disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
             |                          ^
          514|           keyFilter = filter (attrs: !elem attrs.key disabledKeys);

       … while calling the 'concatLists' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:453:24:
          452|           collectResults = modules: {
          453|             disabled = concatLists (catAttrs "disabled" modules);
             |                        ^
          454|             inherit modules;

       … while evaluating the attribute 'disabled'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:453:13:
          452|           collectResults = modules: {
          453|             disabled = concatLists (catAttrs "disabled" modules);
             |             ^
          454|             inherit modules;

       … while calling the 'concatLists' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:453:24:
          452|           collectResults = modules: {
          453|             disabled = concatLists (catAttrs "disabled" modules);
             |                        ^
          454|             inherit modules;

       … while evaluating the attribute 'disabled'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:453:13:
          452|           collectResults = modules: {
          453|             disabled = concatLists (catAttrs "disabled" modules);
             |             ^
          454|             inherit modules;

       … while calling the 'concatLists' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:453:24:
          452|           collectResults = modules: {
          453|             disabled = concatLists (catAttrs "disabled" modules);
             |                        ^
          454|             inherit modules;

       … while evaluating a branch condition
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:471:19:
          470|                 (
          471|                   if module.disabledModules != [ ] then
             |                   ^
          472|                     [

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:462:24:
          461|             let
          462|               module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
             |                        ^
          463|               collectedImports = collectStructuredModules module._file module.key module.imports args;

       … while calling anonymous lambda
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:410:11:
          409|         if class != null then
          410|           m:
             |           ^
          411|           if m._class == null || m._class == class then

       … while evaluating a branch condition
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:411:11:
          410|           m:
          411|           if m._class == null || m._class == class then
             |           ^
          412|             m

       … in the left operand of the OR (||) operator
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:411:31:
          410|           m:
          411|           if m._class == null || m._class == class then
             |                               ^
          412|             m

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:462:37:
          461|             let
          462|               module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
             |                                     ^
          463|               collectedImports = collectStructuredModules module._file module.key module.imports args;

       … while calling 'loadModule'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:376:42:
          375|       loadModule =
          376|         args: fallbackFile: fallbackKey: m:
             |                                          ^
          377|         if isFunction m then

       … while evaluating a branch condition
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:377:9:
          376|         args: fallbackFile: fallbackKey: m:
          377|         if isFunction m then
             |         ^
          378|           unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)

       … from call site
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/modules.nix:377:12:
          376|         args: fallbackFile: fallbackKey: m:
          377|         if isFunction m then
             |            ^
          378|           unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)

       … while calling 'isFunction'
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/trivial.nix:1023:16:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                ^
         1024|

       … in the left operand of the OR (||) operator
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/trivial.nix:1023:41:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                                         ^
         1024|

       … while calling the 'isFunction' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/trivial.nix:1023:19:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                   ^
         1024|

       … while calling the 'elemAt' builtin
         at /mnt/nix/store/dax78flrvcdir20swzlcm64va09nh5x8-source/lib/lists.nix:345:43:
          344|   */
          345|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                                           ^
          346|

       … from call site
         at /mnt/nix/store/vpmfr1w5w16k57fga9x0j4i6syilw6fl-source/hosts/drone/default.nix:4:5:
            3|   imports = [
            4|     inputs.nixos-hardware.nixosModules.starfive-visionfive-2
             |     ^
            5|

       … while calling anonymous lambda
         at «flakes-internal»/call-flake.nix:64:46:
           63|
           64|       inputs = builtins.mapAttrs (inputName: inputSpec: allNodes.${resolveInput inputSpec}) (
             |                                              ^
           65|         node.inputs or { }

       … from call site
         at «flakes-internal»/call-flake.nix:64:57:
           63|
           64|       inputs = builtins.mapAttrs (inputName: inputSpec: allNodes.${resolveInput inputSpec}) (
             |                                                         ^
           65|         node.inputs or { }

       … while calling anonymous lambda
         at «flakes-internal»/call-flake.nix:40:10:
           39|   allNodes = builtins.mapAttrs (
           40|     key: node:
             |          ^
           41|     let

       … in the condition of the assert statement
         at «flakes-internal»/call-flake.nix:90:7:
           89|     if node.flake or true then
           90|       assert builtins.isFunction flake.outputs;
             |       ^
           91|       result

       … while calling the 'isFunction' builtin
         at «flakes-internal»/call-flake.nix:90:14:
           89|     if node.flake or true then
           90|       assert builtins.isFunction flake.outputs;
             |              ^
           91|       result

       … while calling the 'import' builtin
         at «flakes-internal»/call-flake.nix:62:15:
           61|
           62|       flake = import (outPath + "/flake.nix");
             |               ^
           63|

       … while realising the context of a path

       … while calling the 'fetchFinalTree' builtin
         at «flakes-internal»/call-flake.nix:56:11:
           55|           # Note: lock file entries are always final.
           56|           fetchTreeFinal (node.info or { } // removeAttrs node.locked [ "dir" ]);
             |           ^
           57|

       … while fetching the input 'github:nixos/nixos-hardware/daa628a725ab4948e0e2b795e8fb6f4c3e289a7a?narHash=sha256-pZH4bqbOd8S%2Bsi6UcfjHovWDiWKiIGRNRMpmRWaDIms%3D'

       error: adding a file to a tree builder: failed to insert entry: invalid object specified - .editorconfig

Dumping the trace to our friendly neighbourhood LLMs say that it’s coming from NixOS/nixos-hardware; but the .editorconfig file there hasn’t been touched in the last 3 years, so I’m clueless as to what’s going wrong here.


I deleted ~/.cache/nix, but when I try to remove /root/.cache/nix, I get this error:

λ sudo rm /root/.cache/nix -rf 
rm: cannot remove '/root/.cache/nix': Bad message