“All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can’t get them together again, there must be a reason. By all means, do not use a hammer.” — IBM Manual, 1925
- IBM Manual 1925
How Do I Do That, Again?
I decided to change the avatar on the blog. The problem was, I hadn’t messed with it in a while.
Nothing obvious jumped out while browsing the chirpy theme documentation. I did see lots of references to the _config.yml file. Looking at _config.yml in VSCode showed basic configuration options. The avatar option was here along with the URL for the old image. I replaced the URL with a link to the new picture, saved the file and committed the change to Github.
Failed Build
While the Github Action ran I went and made some coffee. When I got back I saw the action failed failed.
The details showed the error had something to do with Ruby. I know nothing about Ruby. Luckily, the error was straightfoward and included a fix.
The error seemed to show the build wanting a particular platform specified, x86_64-linux. This needed to be added to a lockfile. I was only aware of one file that sounded relevant, Gemfile.lock. I found the relevant platform section inside Gemfile.lock and saw the platform included in the error, x64-mingw-ucrt.
The error gave a CLI command to add the missing platform to the file. I manually added x86_64-linux on a new line in the Gemfile.lock, assuming this is what the CLI command was doing. Once the new platform had been added to the lockfile I made the commit and watched the action run.
So far so good.
But… the action failed again.
Now what?
Liquid Exception: undefined method ‘tainted?’. Huh? No idea. A quick Google search took me back to Github, specifically, an Issues page where someone was reporting a very similar error. Reading through the comments it turned out to be an incompatibility issue with Liquid 4.0.3 and Ruby 3.2.0.
Someone recommended a fix, code to add to Gemfile. The code looks like it is forcing Liquid version 4.0.4 or greater. I opened up Gemfile and added the code to the bottom of as suggested.
Save. Comment. Commit. Watch.
The Action ran successfully!
Phew, that was a lot of work to just change an avatar image. Time to check out the page and verify the new image is there.
Still blank. Forced a page refresh, tried a different browser, etc. Still blank. Maybe it was the new CDN I switched to for the new image? Out of curiosity, I decided to try a direct link to the Jekyll logo.
I then added the link to the _config.yml file.
Save. Comment. Commit. Watch.
Okay so the direct link worked. I decided to upload my avatar to Imgur this time.
Save. Comment. Commit. Watch.
Finally. Success.
Conclusion
I concluded that something wonky was going on with the new CDN I had switched to. To verify, I saved and then uploaded the same Jekyll image to the new CDN, made the change in the _config.yml, commented, committed and checked the site. Blank avatar. Hosting the image on Imgur(www.imgur.com) resolved the issue.