I love how Neo4j releases a new version, takes the time to deprecate "whitelist" forcing everyone to go change their configs to "allowlist" but neglects to document that their new version (SURPRISE!) requires APOC 4.2 to work. Skip the rest of this diatribe and go directly to the solution at the bottom if you wish.
Now, they "bundled" the download of APOC with 4.1 - basically acknowledging that nobody (in their right mind) attempts to use Neo4j without APOC. Apparently, so that they could release 4.2 one day early they bundled APOC 4.2.RC02 (Release Candidate 02) code with the download. For the uninitiated, "bundled" means they acknowledge that nobody (in their right mind) can get anything done on Neo4j without APOC, but APOC is not a Neo4j-supported set of code. So they download it to a "labs" directory and make you take the affirmative action of moving it to plugins yourself.
It's kind of like "Welcome to your new car! We realize that it may be difficult to drive without a steering wheel but you will find a steering wheel made by a totally unrelated third party under the back seat. If you decide you really need a steering wheel, please remove it from under the back seat and attach it to the steering column. We make no warranty as to the effectiveness of the steering wheel."
The production version of APOC 4.2 was released the day AFTER Neo4j released 4.2. A 24-hour delay by Neo4j on the 4.2 release would have resulted in a semi-seamless experience for the user base.
You just can't make this stuff up - over, and over, and over again. At least I have learned along the way from 3.x through 4.0 (don't do that one!) to 4.1 and I installed 4.2 on one server to test first. I also --exclude neo4j* from my dnf updates.
ON THE POSITIVE SIDE - with only one day of experience - my team is reporting that 4.2 appears to be faster in some respects important to us and have asked that it be migrated to all the servers. Good for them. The poor infrastructure guy will continue to wait and hope for the surprise-free version release. Note to data analysis team: "Infrastructure assigns no priority to the resolution of any problems created by your decision to proceed. Think APOC and steering wheels."
Bottom line for Linux users:
upgrade your neo4j (and cypher-shell if used) to 4.2 via your preferred method (yum/dnf/apt/etc) then
(Edited 11/20/20 so you can just cut and paste)
cd /$NEO4J_HOME/plugins # set directory explicitly if NEO4J_HOME variable is not set
rm -f apoc* # you don't need the old version of APOC
chown neo4j:neo4j apoc* # change ownership so neo4j has permission
chmod 655 apoc* # make executable across users and groups
systemctl restart neo4j # restart neo4j
Then, just for giggles, do a journalctl -xe and then see if you can tell me why we now get a new error on startup: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
I will figure this out eventually, but if anyone has the solution in their back pocket and can give it to me "doggy, horsey, fishy" simple like my APOC solution above - PLEASE. Otherwise, I will bang my head against the desk and burn up Google until I figure it out and then post here. Just once - one time - a surprise free, error free, deprecation free release. Just once. Is it too much to ask?