Open your Application
Navigate to Settings
Click Builds & Deployments
Change Build System Version from 2 to 1
My Introduction to the Issue
Over the last few years working for Nordstrom, I’ve grown more into a lightweight Engineering role and it has been very interesting. I’ve recently begun to use Git for version control on my scripts and tracking our Ansible and Terraform IaC templates.
This got me interested in using GitHub at home for tracking some basic python3, or HTML5 that I might write. As I spent time on GitHub, of course I checked out GitHub Pages. Played around enough to install Ruby and Jekyll onto my PC and utilize it to build on a few templates. However GitHub Pages doesn’t allow commercial usage of their Pages platform and I would want to do this semi-commercially. Cloudflare Free Tier however provides unlimited repos given less than 500 commits a month. I can keep my commits lower than 500 a month.
For the last 6 months my Business has ran from Cloudflare Pages that I had migrated from GitHub using the Cloudflare Documentation here. Everything in this pipeline had been fine and working. Today was a different story when trying to create a new repo.
The Error Message
11:46:50.029 Executing user command: jekyll build 11:46:51.872 /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:304:in `check_for_activated_spec!': You have already activated i18n 1.14.1, but your Gemfile requires i18n 0.9.5. Prepending `bundle exec` to your command may solve this. (Gem::LoadError) 11:46:51.873 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:25:in `block in setup' 11:46:51.873 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/spec_set.rb:165:in `each' 11:46:51.873 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/spec_set.rb:165:in `each' 11:46:51.873 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:24:in `map' 11:46:51.874 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:24:in `setup' 11:46:51.874 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler.rb:162:in `setup' 11:46:51.874 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/jekyll-4.3.2/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler' 11:46:51.874 from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/jekyll-4.3.2/exe/jekyll:11:in `<top (required)>' 11:46:51.874 from /opt/buildhome/.asdf/installs/ruby/3.2.2/bin/jekyll:25:in `load' 11:46:51.875 from /opt/buildhome/.asdf/installs/ruby/3.2.2/bin/jekyll:25:in `<main>' 11:46:51.879 Failed: Error while executing user command. Exited with error code: 1 11:46:51.889 Failed: build command exited with code: 1 11:46:53.035 Failed: error occurred while running build command
I Googled that second line every which way I could. I added webrick, I recreated the Gemfile over and over like a mad man. Finally, I found it… This THREAD showing that the current version of Liquid and the current version of Ruby are broken compatibility wise. Nothing I can do….. Until I found this sneaky setting….
Changing from Version 2 to Version 1 resolved my issues entirely.
Version 1 runs a Ubuntu 20.04 LTS runner with the older Ruby version 2.7.1 – Using this runner I am able to successfully deploy my GitHub Pages projects onto Cloudflare Pages.
Version 2 run s a Ubuntu 22.04 LTS runner with the newer Ruby version 3.2.2 – Unfortunately the upstream creators of Liquid made core code changes between v4 and the new v5. Now many Jekyll gems based on Liquid are broken.