Plugin is looking for included files in wrong directory (<repo>/_includes instead of <repo/jekyll/_includes>)


Mac OSX Mojave
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
jekyll 3.8.5
liquid 4.0.1
jekyll-algolia 1.4.11

This is likely an environment problem. I had this issue before, and resolved it by a bunch of gem changes. And then I was able to successfully push indexes to Algolia.

But now, three weeks later, with no known environment changes and no jekyll project structural changes, I’m again hitting the following error as soon as the Processing step hits a file that includes another file, via the Liquid command {% include <> %}:

Liquid Exception: Could not locate the included file '<file>.md' in any of ["/Users/msemp/src/<repo>/_includes"]. Ensure it exists in one of those directories and, if it is a symlink, does not point outside your site source. in jekyll/path/to/

And indeed, the <file>.md does not exist in /Users/msemp/src/<repo>/_includes; it correctly exists in the _includes directory that’s properly underneath the jekyll directory: /Users/msemp/src/<repo>/jekyll/_includes.

As I mentioned, things worked three weeks ago. But now that I need to re-index because of a lot of content changes, I’m again hitting this error. I’ve tried all sorts of gem cleanup and unistall/reinstall gem efforts, but nothing’s worked so far.

I’d surely be grateful for help and suggestions.

Oh, my bash script that runs the ALGOLIA_API_KEY command first runs bundle install; here’s the output:

Running bundle
Using concurrent-ruby 1.1.4
Using i18n 0.9.5
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 5.2.2
Using public_suffix 3.0.3
Using addressable 2.6.0
Using json 2.2.0
Using mini_portile2 2.3.0
Using nokogiri 1.8.5
Using algolia_html_extractor 2.6.1
Using httpclient 2.8.3
Using algoliasearch 1.26.0
Using bundler 2.0.1
Using colorator 1.1.0
Using colorize 0.8.1
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.1
Using ffi 1.10.0
Using ethon 0.12.0
Using filesize 0.2.0
Using forwardable-extended 2.6.0
Using mercenary 0.3.6
Using parallel 1.14.0
Using typhoeus 1.3.1
Using yell 2.0.7
Using html-proofer 3.9.3
Using rb-fsevent 0.10.3
Using rb-inotify 0.10.0
Using sass-listen 4.0.0
Using sass 3.7.3
Using jekyll-sass-converter 1.5.2
Using ruby_dep 1.5.0
Using listen 3.1.5
Using jekyll-watch 2.1.2
Using kramdown 1.17.0
Using liquid 4.0.1
Using pathutil 0.16.2
Using rouge 3.3.0
Using safe_yaml 1.0.5
Using jekyll 3.8.5
Using progressbar 1.10.0
Using verbal_expressions 0.1.5
Using jekyll-algolia 1.4.11
Using jekyll-toc 0.9.0
Using multi_json 1.13.1
Using pygments.rb 1.2.0
Bundle complete! 7 Gemfile dependencies, 49 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

SOLVED – Turns out the issue was nothing at all environment-related. Instead, I’d made a change to my big bash script that builds the command, but… I introduced a typo, and therefore the --source jekyll part got lost/not included in the command invocation. And so of course the plugin/Jekyll/Liquid could not locate the _includes directory that’s under the jekyll directory.