Neo4j fails to load apoc.util.s3.S3URLConnection and others

I am unable to get Neo4j to load APOC. Help is appreciated...

Neo4j version = 3.4.7
APOC version = 3.4.0.3

neo4j.conf has: dbms.security.procedures.unrestricted=apoc.*

Neo4j starts then shuts down. The debug.log says:

2018-09-24 17:34:32.668+0000 INFO [o.n.k.i.DatabaseHealth] Database health set to OK
2018-09-24 17:34:33.045+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.s3.S3URLConnection` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: com/amazonaws/ClientConfiguration
2018-09-24 17:34:33.045+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.s3.S3Aws` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: com/amazonaws/auth/AWSCredentials
2018-09-24 17:34:33.046+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.s3.S3Aws$1` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: com/amazonaws/services/s3/model/S3ObjectInputStream
2018-09-24 17:34:33.048+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.Util` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: org/neo4j/internal/kernel/api/security/SecurityContext
2018-09-24 17:34:33.051+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.hdfs.HDFSUtils$1` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: org/apache/hadoop/fs/FSDataInputStream
2018-09-24 17:34:33.051+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.hdfs.HDFSUtils` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: org/apache/hadoop/fs/FSDataOutputStream
2018-09-24 17:34:33.056+0000 WARN [o.n.k.i.p.Procedures] Failed to load `apoc.util.kernel.MultiThreadedGlobalGraphOperations$BatchJob` from plugin jar `/Volumes/ssd2/neo4j/3.7/plugins/apoc-3.4.0.3-all.jar`: org/neo4j/internal/kernel/api/Read
2018-09-24 17:34:33.071+0000 INFO [o.n.k.i.t.l.c.CheckPointerImpl] Check Pointing triggered by database shutdown [1]:  Starting check pointing...

Greetings Michael,

I'm a bit confused. We're currently at version 3.4.7 and while there may be a version 3.5.x in alpha/beta somewhere, I'm quite certain there's no 3.7. So what version are you actually running ?

Regards,
Tom

Sorry. The version number is 3.4.7.

Hello Michael,
Ok, you had me worried there for a moment ... now, most of the Failed to load stuff is normal as apoc contains a lot of stubs for tools that you need to add extra jars for. However, the one for apoc.util.Util is worrying ... I definitely do not have that in my output.

Can you establish an MD5 check for your apoc jar ? Here's what it should be (on Windows but the result has to be the same everywhere) :

L:\neo4j-enterprise-3.4.7\plugins>certutil -hashfile l:\neo4j-enterprise-3.4.7\plugins\apoc-3.4.0.3-all.jar MD5
Hash MD5 van het bestand l:\neo4j-enterprise-3.4.7\plugins\apoc-3.4.0.3-all.jar:
13 60 cb da 0d ae dd db 49 2e 0d 4f 68 58 4c f9

If that is not the result you get, can you do a download of the apoc jar again and retry ?

Regards,
Tom

The MD5 checks out. I went ahead and re-downloaded it and tried again. Same result. By the way, I am on a Macbook Pro 2018. I have tested apoc using both MacOs High Sierra and Mojave. I am able to successfully run Neo4j 3.3.5 with apoc-3.3.0.3-all.jar.

Ok. And the database you are using is actually upgraded to 3.4.7 (or at least some 3.4.x version, I'm assuming it is but covering all cases) ? Have you tested this with an empty database ? Are there other plugins (neosemantics, graphaware, ...) or such in your plugins folder ?

A lot of questions, I know, but there must be something going on here, I've got it running smoothly and Mac is definitely tested (all our engineers have Macbooks).

Regards,
Tom

I have no plugins other than apoc. The graph.db is empty.

sudo ./bin/neo4j version
neo4j 3.3.7
ls plugins
apoc-3.4.0.3-all.jar

Also, I extracted the jar and it appears to have apoc.util.Util.

Aha ... I see the issue.
You're running Neo4j 3.3.7, not 3.4.7, the apoc version is for 3.4.x.
You need this one : https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.3.0.4/apoc-3.3.0.4-all.jar

Regards,
Tom

Hello, looks like you may be using an incompatible APOC version. If you're on Neo4j 3.3.7, then you should be using APOC 3.3.0.4. The APOC version you're using is specifically for 3.4.x versions of Neo4j.

1 Like

Well, thats embarrassing! You are correct, and it is working now. My apologies for wasting your time, but I appreciate the help!

1 Like

We used to have a version matrix on the APOC page, showing the right version per Neo4j version. Looks like that got lost in some of the recent updates, we'll see about getting that back.

1 Like

The matrix exists on the github site. The problem was that when I pulled 3.3.7 I put it into a directory I misnamed as 3.7. Later I assumed it was 3.4.7. And I did not pay attention to what neo was saying the version number was. So, you are fine, it is just me.