# Jekyll serve fails with --trace mentioning execjs

**URL:** <https://talk.jekyllrb.com/t/jekyll-serve-fails-with-trace-mentioning-execjs/6145>\
**Category:** Help\
**Created:** [June 12, 2021, 3:34pm UTC](https://talk.jekyllrb.com/t/jekyll-serve-fails-with-trace-mentioning-execjs/6145 "2021-06-12T15:34:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jhogue](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/jhogue/32/1815_2.png) [@jhogue](https://talk.jekyllrb.com/u/jhogue)\
**Post date:** [June 12, 2021, 3:34pm UTC](https://talk.jekyllrb.com/t/jekyll-serve-fails-with-trace-mentioning-execjs/6145/1 "2021-06-12T15:34:14Z")

</div>

Jekyll serve now fails but the trace message does not seem helpful to me. These are the steps I have taken so far and the error messages as well as the crucial environment versions. Mac OS X was recently updated so it must have something to do with that, but I see that I am still running Ruby 2.6.1. I did some searching here and on SO without much related to my actual trace error.

MacOSX Big Sur 11.4  
Updated XTools had missing extensions, so I updated it.

```auto
$ which ruby
/Users/jhogue/.rvm/rubies/ruby-2.6.1/bin/ruby
$ ruby -v
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin19]

```

RVM does not have 3.0 installed as an option — is it required for Jekyll 4.2 (which I am running as well)? Bundle has been updated twice. Gemfile.lock has been deleted and recreated.

`$ jekyll serve --trace` produces:

```auto
Traceback (most recent call last):
        43: from /Users/jhogue/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:15:in `<main>'
        42: from /Users/jhogue/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:15:in `eval'
        41: from /Users/jhogue/.rvm/gems/ruby-2.6.1/bin/jekyll:23:in `<main>'
        40: from /Users/jhogue/.rvm/gems/ruby-2.6.1/bin/jekyll:23:in `load'
        39: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/exe/jekyll:15:in `<top (required)>'
        38: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        37: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        36: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        35: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        34: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        33: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        32: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        31: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `each'
        30: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        29: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:36:in `process'
        28: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:65:in `build'
        27: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/command.rb:28:in `process_site'
        26: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/site.rb:82:in `process'
        25: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/site.rb:234:in `write'
        24: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/hooks.rb:102:in `trigger'
        23: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/hooks.rb:102:in `each'
        22: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-4.2.0/lib/jekyll/hooks.rb:103:in `block in trigger'
        21: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-autoprefixer-1.0.2/lib/jekyll-autoprefixer.rb:24:in `block in <top (required)>'
        20: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:20:in `process'
        19: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:20:in `each'
        18: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:23:in `block in process'
        17: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:23:in `open'
        16: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:27:in `block (2 levels) in process'
        15: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails.rb:16:in `process'
        14: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails/processor.rb:53:in `process'
        13: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails/processor.rb:170:in `runtime'
        12: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/execjs-2.8.1/lib/execjs/runtime.rb:64:in `eval'
        11: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/execjs-2.8.1/lib/execjs/external_runtime.rb:21:in `eval'
        10: from /Users/jhogue/.rvm/gems/ruby-2.6.1/gems/execjs-2.8.1/lib/execjs/external_runtime.rb:39:in `exec'
         9: from Function.Module._load (internal/modules/cjs/loader.js:529:3)
         8: from tryModuleLoad (internal/modules/cjs/loader.js:537:12)
         7: from Module.load (internal/modules/cjs/loader.js:598:32)
         6: from Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
         5: from Module._compile (internal/modules/cjs/loader.js:688:30)
         4: from Object.<anonymous> ((execjs):1:120)
         3: from (execjs):1:102
         2: from (execjs):19:14
         1: from (execjs):1:275
eval (eval at <anonymous> ((execjs):1:275), <anonymous>:1:10): TypeError: Cannot read property 'version' of undefined (ExecJS::ProgramError)

```

I added `execjs` to my Gemfile (which was not formerly present) and ran `bundle update`. Output confirms I am `Using execjs 2.8.1`. Still fails quietly when running `jekyll serve` without a trace command:

```auto
$ jekyll serve
Configuration file: /Users/jhogue/github/artinruins-com/_config.yml
            Source: /Users/jhogue/github/artinruins-com
       Destination: /Users/jhogue/github/artinruins-com/_stage
 Incremental build: disabled. Enable with --incremental
      Generating... 
                    ------------------------------------------------
      Jekyll 4.2.0 Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------
$

```

Now I’m stuck and do not know what to try next.

---

<div class="post-metadata">

**Author:** ![rdyar](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/rdyar/32/710_2.png) [@rdyar](https://talk.jekyllrb.com/u/rdyar)\
**Post date:** [June 12, 2021, 4:08pm UTC](https://talk.jekyllrb.com/t/jekyll-serve-fails-with-trace-mentioning-execjs/6145/2 "2021-06-12T16:08:58Z")

</div>

> [@jhogue](#):
>
> `TypeError: Cannot read property 'version' of undefined (ExecJS::ProgramError)`

check this thread for similar errors and some ideas, looks like it might be due to autoprefixer. Try removing that and see if it works.

> <https://github.com/rails/execjs/issues/99>
>
> Hi, I don't know much about jekyll or ruby or rails or exec-js
> \[My project\](htt…ps://github.com/colabois/colabois.fr) won't build with version 2.8.0
> 
> here's the traceback : 
> 
> \`\`\`
> ExecJS::ProgramError: TypeError: Cannot read property 'version' of undefined
> eval (eval at \<anonymous\> ((execjs):1:213), \<anonymous\>:1:10)
> (execjs):1:213
> (execjs):16:14
> (execjs):1:40
> Object.\<anonymous\> ((execjs):1:58)
> Module.\_compile (internal/modules/cjs/loader.js:1063:30)
> Object.Module.\_extensions..js (internal/modules/cjs/loader.js:1092:10)
> Module.load (internal/modules/cjs/loader.js:928:32)
> Function.Module.\_load (internal/modules/cjs/loader.js:769:14)
> Function.executeUserEntryPoint \[as runMain\] (internal/modules/run\_main.js:72:12)
> /usr/lib64/ruby/gems/2.6.0/gems/execjs-2.8.0/lib/execjs/external\_runtime.rb:39:in \`exec'
> /usr/lib64/ruby/gems/2.6.0/gems/execjs-2.8.0/lib/execjs/external\_runtime.rb:21:in \`eval'
> /usr/lib64/ruby/gems/2.6.0/gems/execjs-2.8.0/lib/execjs/runtime.rb:64:in \`eval'
> /usr/lib64/ruby/gems/2.6.0/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails/processor.rb:170:in \`runtime'
> /usr/lib64/ruby/gems/2.6.0/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails/processor.rb:53:in \`process'
> /usr/lib64/ruby/gems/2.6.0/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails.rb:16:in \`process'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:27:in \`block (2 levels) in process'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:23:in \`open'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:23:in \`block in process'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:20:in \`each'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:20:in \`process'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll-autoprefixer.rb:24:in \`block in \<top (required)\>'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/hooks.rb:103:in \`block in trigger'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/hooks.rb:102:in \`each'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/hooks.rb:102:in \`trigger'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:234:in \`write'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:82:in \`process'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:28:in \`process\_site'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:65:in \`build'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:36:in \`process'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in \`block in process\_with\_graceful\_fail'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in \`each'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in \`process\_with\_graceful\_fail'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:86:in \`block (2 levels) in init\_with\_program'
> /usr/lib64/ruby/gems/2.6.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in \`block in execute'
> /usr/lib64/ruby/gems/2.6.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in \`each'
> /usr/lib64/ruby/gems/2.6.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in \`execute'
> /usr/lib64/ruby/gems/2.6.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in \`go'
> /usr/lib64/ruby/gems/2.6.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in \`program'
> /usr/lib64/ruby/gems/2.6.0/gems/jekyll-4.2.0/exe/jekyll:15:in \`\<top (required)\>'
> /usr/bin/jekyll:9:in \`load'
> /usr/bin/jekyll:9:in \`\<top (required)\>'
> \`\`\`
> 
> I don't know if it's a jekyll issue or an execjs issue, meanwhile we're rolling back to 2.7.0.
> Best Regards,
> SuwakoMmh.

---

<div class="post-metadata">

**Author:** ![jhogue](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/jhogue/32/1815_2.png) [@jhogue](https://talk.jekyllrb.com/u/jhogue)\
**Post date:** [June 12, 2021, 8:41pm UTC](https://talk.jekyllrb.com/t/jekyll-serve-fails-with-trace-mentioning-execjs/6145/3 "2021-06-12T20:41:38Z")

</div>

Ok, nice find! According to that thread the Ruby version or the Execjs version needs to be changed, and pinning `execjs` to version 2.7.0 fixed the build issue. Thanks so much
