I have found a solution that "works for me" and is not mentioned in any related discussions. I am using LuaLaTeX with TeXlive 2017, but I don't think that is essential.
My solution: Create a file named
babel-english.sty. You may leave its contents empty. Put the file in the same folder as your main *.tex document. Discard its existing *.aux and *.synctex.gz files. Then re-compile your *.tex document.
As best as I can determine, when
babel loads with default language
english it looks for package
babel-english. Even though
babel-english is installed, it has only data files, not a *.sty file. So,
babel cannot find it. When you make a fake
babel-english.sty file available, then
babel proceeds normally.
You may also create folder
(texmf-local)/text/generic/babel-english and place the fake file there, then update your file name database (on Ubuntu, command line
As I said, that worked for me. Seems like it is a transient, possibly installation-dependent, problem. EDIT: Interesting! Once I got this working the first time, I was able to remove the fake sty file, delete the aux and related files, and it kept working. Very mysterious. That might explain why the problem is not seen more often.