<p>don't know if it can help, but after cloning the <code>plutus-apps</code> repository, I ran <code>cabal update</code>, and then <code>nix-shell</code>. Once that was finished, I just followed the README and ran <code>cabal build plutus-pab</code>. I then followed the instructions on page 2 of this document -&gt; <a href="https://docs.google.com/document/d/13112LHG9vVvNUs40oZSqZ-DF6_yFiT_SJZ2NaEmjMM4/edit#" rel="nofollow noreferrer">https://docs.google.com/document/d/13112LHG9vVvNUs40oZSqZ-DF6_yFiT_SJZ2NaEmjMM4/edit#</a> although I did not do step 3 (<code>nix-build -A plutus-playground.server</code>), and it seems to work fine. I hope you manage to find the issue</p>

CC BY-SA 4.0
2022-01-14T10:12:59.623Z
2022-01-14T10:12:59.623Z
simon
<p>Some characters pasted from Windows are encoded in ways that your shell can't interpret. Either (1)  type the command manually, or (2) after pasting the command into the shell, manually replace all whitespace with simple spaces before running it.</p>

CC BY-SA 4.0
2022-01-13T07:12:19.510Z
Thank @Hysteria, I typed the commands but it doesn't work. I updated my question with more information, can you take a look :D
Nhan Nguyen
CC BY-SA 4.0
2022-01-13T06:12:41.203Z
2022-01-13T06:12:41.203Z
Hysteria
<p>I'm following the <a href="https://docs.google.com/document/d/13112LHG9vVvNUs40oZSqZ-DF6_yFiT_SJZ2NaEmjMM4/edit#" rel="nofollow noreferrer">Plutus Env: Setup Starter Pack guideline</a> to run a Plutus Playground Local Instance. At step 4, when running the command <code>nix-shell</code>, I got the error message <code>error: invalid character in Base64 string: ''</code>. Does anyone know how to fix it? I'm using WSL2 with Ubuntu 20.04 distro.</p>
<p>All the steps I did are:</p>
<ol>
<li>Download the plutus-apps repository: git clone <a href="https://github.com/input-output-hk/plutus-apps" rel="nofollow noreferrer">https://github.com/input-output-hk/plutus-apps</a></li>
<li>Go to the latest commit of the repository: git checkout 7f53f18dfc788bf6aa929f47d840efa1247e11fd</li>
<li>Setup  IOHK binary cache (<a href="https://github.com/input-output-hk/plutus-apps#iohk-binary-cache" rel="nofollow noreferrer">https://github.com/input-output-hk/plutus-apps#iohk-binary-cache</a>) and then at top of this repo, nix-build -A plutus-playground.server</li>
<li>Enter nix-shell =&gt; error: invalid character in Base64 string: ''</li>
</ol>
<p>Here are the outputs of <code>nix-build</code>, <code>nix-shell</code>, <code>nix-shell --show-trace</code></p>
<pre><code>nhaancs@NhanNguyen:~/Workspace/plutus-apps$ nix-build -A plutus-playground.server
/nix/store/3igf75n00amzcyfrk7wmh3kjp73bx6bp-plutus-playground-server-exe-plutus-playground-server-0.1.0.0
nhaancs@NhanNguyen:~/Workspace/plutus-apps$ nix-shell
error: invalid character in Base64 string: ''
(use '--show-trace' to show detailed location information)
nhaancs@NhanNguyen:~/Workspace/plutus-apps$ nix-shell --show-trace
error: invalid character in Base64 string: ''

       … while importing '/nix/store/9vsdalr213rjwh2810jdv1p2r7lifpsl-ghc810420210212-boot-packages-nix.nix/ghci.nix'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/overlays/ghc-packages.nix:51:14:

           50|   importSrcAndNix = srcAndNix:
           51|       args: (import srcAndNix.nix args) // { inherit (srcAndNix) src; };
             |              ^
           52|

       … while evaluating 'importSrcAndNix'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/overlays/ghc-packages.nix:51:7:

           50|   importSrcAndNix = srcAndNix:
           51|       args: (import srcAndNix.nix args) // { inherit (srcAndNix) src; };
             |       ^
           52|

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/modules/plan.nix:302:20:

          301|               then (abort &quot;${name} has no revision!&quot;)
          302|               else revision (modArgs // { hsPkgs = hsPkgs // (mapAttrs (l: _: hsPkgs.${name}.components.sublibs.${l}) (m.components.sublibs or {})); });
             |                    ^
          303|       in

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/modules/plan.nix:298:63:

          297|     inherit (module) compiler;
          298|     packages = lib.mapAttrs (name: { revision, ... }@revArgs: { system, compiler, flags, pkgs, hsPkgs, errorHandler, pkgconfPkgs, ... }@modArgs:
             |                                                               ^
          299|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:499:46:

          498|         coerce = unify: value: if isFunction value
          499|           then setFunctionArgs (args: unify (value args)) (functionArgs value)
             |                                              ^
          500|           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);

       … while evaluating 'unifyModuleSyntax'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:258:34:

          257|      of ‘options’, ‘config’ and ‘imports’ attributes. */
          258|   unifyModuleSyntax = file: key: m:
             |                                  ^
          259|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:499:39:

          498|         coerce = unify: value: if isFunction value
          499|           then setFunctionArgs (args: unify (value args)) (functionArgs value)
             |                                       ^
          500|           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:499:33:

          498|         coerce = unify: value: if isFunction value
          499|           then setFunctionArgs (args: unify (value args)) (functionArgs value)
             |                                 ^
          500|           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:312:8:

          311|       # works.
          312|     in f (args // extraArgs)
             |        ^
          313|   else

       … while evaluating 'applyIfFunction'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:288:29:

          287|
          288|   applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then
             |                             ^
          289|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:191:55:

          190|         if isFunction m || isAttrs m then
          191|           unifyModuleSyntax fallbackFile fallbackKey (applyIfFunction fallbackKey m args)
             |                                                       ^
          192|         else if isList m then

       … while evaluating 'unifyModuleSyntax'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:258:34:

          257|      of ‘options’, ‘config’ and ‘imports’ attributes. */
          258|   unifyModuleSyntax = file: key: m:
             |                                  ^
          259|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:191:11:

          190|         if isFunction m || isAttrs m then
          191|           unifyModuleSyntax fallbackFile fallbackKey (applyIfFunction fallbackKey m args)
             |           ^
          192|         else if isList m then

       … while evaluating 'loadModule'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:189:53:

          188|       # Like unifyModuleSyntax, but also imports paths and calls functions if necessary
          189|       loadModule = args: fallbackFile: fallbackKey: m:
             |                                                     ^
          190|         if isFunction m || isAttrs m then

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:230:22:

          229|           let
          230|             module = loadModule args parentFile &quot;${parentKey}:anon-${toString n}&quot; x;
             |                      ^
          231|             collectedImports = collectStructuredModules module._file module.key module.imports args;

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:247:31:

          246|           disabledKeys = map moduleKey disabled;
          247|           keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
             |                               ^
          248|         in map (attrs: attrs.module) (builtins.genericClosure {

       … from call site

       … while evaluating 'filterModules'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:243:36:

          242|       # modules recursively. It returns the final list of unique-by-key modules
          243|       filterModules = modulesPath: { disabled, modules }:
             |                                    ^
          244|         let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:254:7:

          253|     in modulesPath: initialModules: args:
          254|       filterModules modulesPath (collectStructuredModules unknownModule &quot;&quot; initialModules args);
             |       ^
          255|

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:253:37:

          252|
          253|     in modulesPath: initialModules: args:
             |                                     ^
          254|       filterModules modulesPath (collectStructuredModules unknownModule &quot;&quot; initialModules args);

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:128:25:

          127|       merged =
          128|         let collected = collectModules
             |                         ^
          129|           (specialArgs.modulesPath or &quot;&quot;)

       … while evaluating 'reverseList'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/lists.nix:393:17:

          392|   */
          393|   reverseList = xs:
             |                 ^
          394|     let l = length xs; in genList (n: elemAt xs (l - n - 1)) l;

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:132:33:

          131|           ({ inherit lib options config specialArgs; } // specialArgs);
          132|         in mergeModules prefix (reverseList collected);
             |                                 ^
          133|

       … while evaluating 'byName'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:364:25:

          363|       */
          364|       byName = attr: f: modules:
             |                         ^
          365|         foldl' (acc: module:

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:383:21:

          382|       # an attrset 'name' =&gt; list of submodules that declare ‘name’.
          383|       declsByName = byName &quot;options&quot; (module: option:
             |                     ^
          384|           [{ inherit (module) _file; options = option; }]

       … while evaluating 'flip'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/trivial.nix:138:16:

          137|   */
          138|   flip = f: a: b: f b a;
             |                ^
          139|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:395:23:

          394|
          395|       resultsByName = flip mapAttrs declsByName (name: decls:
             |                       ^
          396|         # We're descending into attribute ‘name’.

       … while evaluating the attribute 'matchedOptions'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:427:14:

          426|     in {
          427|       inherit matchedOptions;
             |              ^
          428|

       … while evaluating 'recurse'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:295:23:

          294|     let
          295|       recurse = path: set:
             |                       ^
          296|         let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:303:8:

          302|         in mapAttrs g set;
          303|     in recurse [] set;
             |        ^
          304|

       … while evaluating 'mapAttrsRecursiveCond'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:293:36:

          292|   */
          293|   mapAttrsRecursiveCond = cond: f: set:
             |                                    ^
          294|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:140:28:

          139|           # For definitions that have an associated option
          140|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                            ^
          141|

       … while evaluating 'evalModules'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:63:17:

           62|      evalModules) and the less declarative the module set is. */
           63|   evalModules = { modules
             |                 ^
           64|                 , prefix ? []

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:520:12:

          519|         merge = loc: defs:
          520|           (evalModules {
             |            ^
          521|             modules = allModules defs;

       … while evaluating 'merge'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:519:22:

          518|         check = x: isAttrs x || isFunction x || path.check x;
          519|         merge = loc: defs:
             |                      ^
          520|           (evalModules {

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:559:59:

          558|       if isDefined then
          559|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                                                           ^
          560|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while evaluating the attribute 'value'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:570:27:

          569|     optionalValue =
          570|       if isDefined then { value = mergedValue; }
             |                           ^
          571|       else {};

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:394:22:

          393|       merge = loc: defs:
          394|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
             |                      ^
          395|             (mergeDefinitions (loc ++ [name]) elemType defs).optionalValue

       … from call site

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/modules/component-driver.nix:95:14:

           94|     lib.mapAttrs
           95|       (name: pkg: if pkg == null then null else builder.build-package config pkg)
             |              ^
           96|       (config.packages // lib.genAttrs (config.nonReinstallablePkgs ++ config.bootPkgs) (_: null));

       … from call site

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/lib/default.nix:103:49:

          102|   isLocalPackage = p: p.isLocal or false;
          103|   selectLocalPackages = ps: lib.filterAttrs (n: p: p != null &amp;&amp; isLocalPackage p) ps;
             |                                                 ^
          104|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:125:62:

          124|   filterAttrs = pred: set:
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
             |                                                              ^
          126|

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:125:29:

          124|   filterAttrs = pred: set:
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
             |                             ^
          126|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:125:18:

          124|   filterAttrs = pred: set:
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
             |                  ^
          126|

       … while evaluating 'filterAttrs'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:124:23:

          123|   */
          124|   filterAttrs = pred: set:
             |                       ^
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/lib/default.nix:103:29:

          102|   isLocalPackage = p: p.isLocal or false;
          103|   selectLocalPackages = ps: lib.filterAttrs (n: p: p != null &amp;&amp; isLocalPackage p) ps;
             |                             ^
          104|

       … while evaluating 'selectLocalPackages'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/lib/default.nix:103:25:

          102|   isLocalPackage = p: p.isLocal or false;
          103|   selectLocalPackages = ps: lib.filterAttrs (n: p: p != null &amp;&amp; isLocalPackage p) ps;
             |                         ^
          104|

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:6:39:

            5|   # dependencies will be included in the shell's `ghc-pkg list`.
            6|   packages ? ps: builtins.attrValues (haskellLib.selectLocalPackages ps)
             |                                       ^
            7|   # `components` function selects components that will be worked on in the shell itself.

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:6:14:

            5|   # dependencies will be included in the shell's `ghc-pkg list`.
            6|   packages ? ps: builtins.attrValues (haskellLib.selectLocalPackages ps)
             |              ^
            7|   # `components` function selects components that will be worked on in the shell itself.

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:26:22:

           25|
           26|   selectedPackages = packages hsPkgs;
             |                      ^
           27|   additionalPackages = additional hsPkgs;

       … while evaluating the attribute 'name'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:136:5:

          135|   mkShell (mkDrvArgs // {
          136|     name = mkDrvArgs.name or name;
             |     ^
          137|
</code></pre>

CC BY-SA 4.0
2022-01-13T06:41:44.857Z
Could you paste the entire output and tell us which option from the starter pack you chose?
Avatar33
CC BY-SA 4.0
2022-01-13T07:10:44.293Z
@Avatar33 I updated the question with output
Nhan Nguyen
<plutus><plutus-pioneer-program><plutus-playground><nix-shell>
nix-shell command causes error "invalid character in Base64 string"
# nix-shell command causes error "invalid character in Base64 string"

(Asked by: username_0 on 2022-01-13)

I'm following the Plutus Env: Setup Starter Pack guideline to run a Plutus Playground Local Instance. At step 4, when running the command nix-shell, I got the error message error: invalid character in Base64 string: ''. Does anyone know how to fix it? I'm using WSL2 with Ubuntu 20.04 distro.
All the steps I did are:

Download the plutus-apps repository: git clone https://github.com/input-output-hk/plutus-apps
Go to the latest commit of the repository: git checkout 7f53f18dfc788bf6aa929f47d840efa1247e11fd
Setup  IOHK binary cache (https://github.com/input-output-hk/plutus-apps#iohk-binary-cache) and then at top of this repo, nix-build -A plutus-playground.server
Enter nix-shell => error: invalid character in Base64 string: ''

Here are the outputs of nix-build, nix-shell, nix-shell --show-trace
nhaancs@NhanNguyen:~/Workspace/plutus-apps$ nix-build -A plutus-playground.server
/nix/store/3igf75n00amzcyfrk7wmh3kjp73bx6bp-plutus-playground-server-exe-plutus-playground-server-0.1.0.0
nhaancs@NhanNguyen:~/Workspace/plutus-apps$ nix-shell
error: invalid character in Base64 string: ''
(use '--show-trace' to show detailed location information)
nhaancs@NhanNguyen:~/Workspace/plutus-apps$ nix-shell --show-trace
error: invalid character in Base64 string: ''

       … while importing '/nix/store/9vsdalr213rjwh2810jdv1p2r7lifpsl-ghc810420210212-boot-packages-nix.nix/ghci.nix'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/overlays/ghc-packages.nix:51:14:

           50|   importSrcAndNix = srcAndNix:
           51|       args: (import srcAndNix.nix args) // { inherit (srcAndNix) src; };
             |              ^
           52|

       … while evaluating 'importSrcAndNix'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/overlays/ghc-packages.nix:51:7:

           50|   importSrcAndNix = srcAndNix:
           51|       args: (import srcAndNix.nix args) // { inherit (srcAndNix) src; };
             |       ^
           52|

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/modules/plan.nix:302:20:

          301|               then (abort "${name} has no revision!")
          302|               else revision (modArgs // { hsPkgs = hsPkgs // (mapAttrs (l: _: hsPkgs.${name}.components.sublibs.${l}) (m.components.sublibs or {})); });
             |                    ^
          303|       in

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/modules/plan.nix:298:63:

          297|     inherit (module) compiler;
          298|     packages = lib.mapAttrs (name: { revision, ... }@revArgs: { system, compiler, flags, pkgs, hsPkgs, errorHandler, pkgconfPkgs, ... }@modArgs:
             |                                                               ^
          299|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:499:46:

          498|         coerce = unify: value: if isFunction value
          499|           then setFunctionArgs (args: unify (value args)) (functionArgs value)
             |                                              ^
          500|           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);

       … while evaluating 'unifyModuleSyntax'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:258:34:

          257|      of ‘options’, ‘config’ and ‘imports’ attributes. */
          258|   unifyModuleSyntax = file: key: m:
             |                                  ^
          259|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:499:39:

          498|         coerce = unify: value: if isFunction value
          499|           then setFunctionArgs (args: unify (value args)) (functionArgs value)
             |                                       ^
          500|           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:499:33:

          498|         coerce = unify: value: if isFunction value
          499|           then setFunctionArgs (args: unify (value args)) (functionArgs value)
             |                                 ^
          500|           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:312:8:

          311|       # works.
          312|     in f (args // extraArgs)
             |        ^
          313|   else

       … while evaluating 'applyIfFunction'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:288:29:

          287|
          288|   applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then
             |                             ^
          289|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:191:55:

          190|         if isFunction m || isAttrs m then
          191|           unifyModuleSyntax fallbackFile fallbackKey (applyIfFunction fallbackKey m args)
             |                                                       ^
          192|         else if isList m then

       … while evaluating 'unifyModuleSyntax'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:258:34:

          257|      of ‘options’, ‘config’ and ‘imports’ attributes. */
          258|   unifyModuleSyntax = file: key: m:
             |                                  ^
          259|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:191:11:

          190|         if isFunction m || isAttrs m then
          191|           unifyModuleSyntax fallbackFile fallbackKey (applyIfFunction fallbackKey m args)
             |           ^
          192|         else if isList m then

       … while evaluating 'loadModule'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:189:53:

          188|       # Like unifyModuleSyntax, but also imports paths and calls functions if necessary
          189|       loadModule = args: fallbackFile: fallbackKey: m:
             |                                                     ^
          190|         if isFunction m || isAttrs m then

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:230:22:

          229|           let
          230|             module = loadModule args parentFile "${parentKey}:anon-${toString n}" x;
             |                      ^
          231|             collectedImports = collectStructuredModules module._file module.key module.imports args;

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:247:31:

          246|           disabledKeys = map moduleKey disabled;
          247|           keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
             |                               ^
          248|         in map (attrs: attrs.module) (builtins.genericClosure {

       … from call site

       … while evaluating 'filterModules'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:243:36:

          242|       # modules recursively. It returns the final list of unique-by-key modules
          243|       filterModules = modulesPath: { disabled, modules }:
             |                                    ^
          244|         let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:254:7:

          253|     in modulesPath: initialModules: args:
          254|       filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
             |       ^
          255|

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:253:37:

          252|
          253|     in modulesPath: initialModules: args:
             |                                     ^
          254|       filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:128:25:

          127|       merged =
          128|         let collected = collectModules
             |                         ^
          129|           (specialArgs.modulesPath or "")

       … while evaluating 'reverseList'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/lists.nix:393:17:

          392|   */
          393|   reverseList = xs:
             |                 ^
          394|     let l = length xs; in genList (n: elemAt xs (l - n - 1)) l;

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:132:33:

          131|           ({ inherit lib options config specialArgs; } // specialArgs);
          132|         in mergeModules prefix (reverseList collected);
             |                                 ^
          133|

       … while evaluating 'byName'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:364:25:

          363|       */
          364|       byName = attr: f: modules:
             |                         ^
          365|         foldl' (acc: module:

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:383:21:

          382|       # an attrset 'name' => list of submodules that declare ‘name’.
          383|       declsByName = byName "options" (module: option:
             |                     ^
          384|           [{ inherit (module) _file; options = option; }]

       … while evaluating 'flip'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/trivial.nix:138:16:

          137|   */
          138|   flip = f: a: b: f b a;
             |                ^
          139|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:395:23:

          394|
          395|       resultsByName = flip mapAttrs declsByName (name: decls:
             |                       ^
          396|         # We're descending into attribute ‘name’.

       … while evaluating the attribute 'matchedOptions'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:427:14:

          426|     in {
          427|       inherit matchedOptions;
             |              ^
          428|

       … while evaluating 'recurse'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:295:23:

          294|     let
          295|       recurse = path: set:
             |                       ^
          296|         let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:303:8:

          302|         in mapAttrs g set;
          303|     in recurse [] set;
             |        ^
          304|

       … while evaluating 'mapAttrsRecursiveCond'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:293:36:

          292|   */
          293|   mapAttrsRecursiveCond = cond: f: set:
             |                                    ^
          294|     let

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:140:28:

          139|           # For definitions that have an associated option
          140|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                            ^
          141|

       … while evaluating 'evalModules'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:63:17:

           62|      evalModules) and the less declarative the module set is. */
           63|   evalModules = { modules
             |                 ^
           64|                 , prefix ? []

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:520:12:

          519|         merge = loc: defs:
          520|           (evalModules {
             |            ^
          521|             modules = allModules defs;

       … while evaluating 'merge'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:519:22:

          518|         check = x: isAttrs x || isFunction x || path.check x;
          519|         merge = loc: defs:
             |                      ^
          520|           (evalModules {

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:559:59:

          558|       if isDefined then
          559|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                                                           ^
          560|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while evaluating the attribute 'value'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/modules.nix:570:27:

          569|     optionalValue =
          570|       if isDefined then { value = mergedValue; }
             |                           ^
          571|       else {};

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/types.nix:394:22:

          393|       merge = loc: defs:
          394|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
             |                      ^
          395|             (mergeDefinitions (loc ++ [name]) elemType defs).optionalValue

       … from call site

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/modules/component-driver.nix:95:14:

           94|     lib.mapAttrs
           95|       (name: pkg: if pkg == null then null else builder.build-package config pkg)
             |              ^
           96|       (config.packages // lib.genAttrs (config.nonReinstallablePkgs ++ config.bootPkgs) (_: null));

       … from call site

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/lib/default.nix:103:49:

          102|   isLocalPackage = p: p.isLocal or false;
          103|   selectLocalPackages = ps: lib.filterAttrs (n: p: p != null && isLocalPackage p) ps;
             |                                                 ^
          104|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:125:62:

          124|   filterAttrs = pred: set:
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
             |                                                              ^
          126|

       … while evaluating anonymous lambda

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:125:29:

          124|   filterAttrs = pred: set:
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
             |                             ^
          126|

       … from call site

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:125:18:

          124|   filterAttrs = pred: set:
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
             |                  ^
          126|

       … while evaluating 'filterAttrs'

       at /nix/store/kawxd91ly09hlyqprqs7yn650s3cfvf6-source/lib/attrsets.nix:124:23:

          123|   */
          124|   filterAttrs = pred: set:
             |                       ^
          125|     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/lib/default.nix:103:29:

          102|   isLocalPackage = p: p.isLocal or false;
          103|   selectLocalPackages = ps: lib.filterAttrs (n: p: p != null && isLocalPackage p) ps;
             |                             ^
          104|

       … while evaluating 'selectLocalPackages'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/lib/default.nix:103:25:

          102|   isLocalPackage = p: p.isLocal or false;
          103|   selectLocalPackages = ps: lib.filterAttrs (n: p: p != null && isLocalPackage p) ps;
             |                         ^
          104|

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:6:39:

            5|   # dependencies will be included in the shell's `ghc-pkg list`.
            6|   packages ? ps: builtins.attrValues (haskellLib.selectLocalPackages ps)
             |                                       ^
            7|   # `components` function selects components that will be worked on in the shell itself.

       … while evaluating anonymous lambda

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:6:14:

            5|   # dependencies will be included in the shell's `ghc-pkg list`.
            6|   packages ? ps: builtins.attrValues (haskellLib.selectLocalPackages ps)
             |              ^
            7|   # `components` function selects components that will be worked on in the shell itself.

       … from call site

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:26:22:

           25|
           26|   selectedPackages = packages hsPkgs;
             |                      ^
           27|   additionalPackages = additional hsPkgs;

       … while evaluating the attribute 'name'

       at /nix/store/8n76c1c3nz2wl6dzxmxdz2y5xrx70flw-source/builder/shell-for.nix:136:5:

          135|   mkShell (mkDrvArgs // {
          136|     name = mkDrvArgs.name or name;
             |     ^
          137|

**Tags:** plutus, plutus-pioneer-program, plutus-playground, nix-shell
> **Comments:**
> **username_1**: Could you paste the entire output and tell us which option from the starter pack you chose?  
> **username_0**: @Avatar33 I updated the question with output  

---

## 2 answers

### Answer by username_2 on 2022-01-14. Score: 0

don't know if it can help, but after cloning the `plutus-apps` repository, I ran `cabal update`, and then `nix-shell`. Once that was finished, I just followed the README and ran `cabal build plutus-pab`. I then followed the instructions on page 2 of this document -> <https://docs.google.com/document/d/13112LHG9vVvNUs40oZSqZ-DF6_yFiT_SJZ2NaEmjMM4/edit#> although I did not do step 3 (`nix-build -A plutus-playground.server`), and it seems to work fine. I hope you manage to find the issue


---

### Answer by username_3 on 2022-01-13. Score: 0

Some characters pasted from Windows are encoded in ways that your shell can't interpret. Either (1) type the command manually, or (2) after pasting the command into the shell, manually replace all whitespace with simple spaces before running it.

> **Comments:**
> **username_0**: Thank @Hysteria, I typed the commands but it doesn't work. I updated my question with more information, can you take a look :D  

---

