After migrating from Neo4j 4.1.6 community to 4.1.6 Neo4j enterprise edition, we're getting this error from our log when starting neo4j from systemd service.
ERROR Client triggered an unexpected error [Neo.DatabaseError.General.UnknownError]: null, reference 6fc70117-9b0f-40c0-8dbe-9fe903136506.
But everything works fine when we manually start neo4j with the following command:
Check your debug.log and post the contents of about the time when this error occurred, and look for extra information on what happened.
If you see nothing, make sure to enable query logging in Neo4j, and then do the same thing again, checking query.log so that you can correlate whatever the error is to the client query that came through.
Also, what's the client? This error suggests something is connecting to Neo4j. Is that the case? If so, what?
Clearly this is a bug. Java software should anticipate when a Null can be thrown and check for it there or even earlier on.
To debug this, programmers are going to need the complete error message (hopefully in the logs), with stack crawl, which often will point to the piece of code that is having problems (which might not be where the bug is.)
You might try upgrading to the latest version of Neo4J 4.2.2
This happen when trying to access the database via neo4j browser.
2021-02-05 17:21:00.003+0000 ERROR [o.n.b.r.s.i.ErrorReporter] Client triggered an unexpected error [Neo.DatabaseError.General.UnknownError]: null, reference 45dfe658-b734-4658-919f-a076fed6baca.
java.lang.UnsupportedOperationException
at org.neo4j.kernel.impl.api.index.AbstractSwallowingIndexProxy.newReader(AbstractSwallowingIndexProxy.java:89)
at org.neo4j.kernel.impl.api.index.FlippableIndexProxy.newReader(FlippableIndexProxy.java:271)
at org.neo4j.kernel.impl.api.index.AbstractDelegatingIndexProxy.newReader(AbstractDelegatingIndexProxy.java:98)
at org.neo4j.kernel.impl.api.IndexReaderCache.newUnCachedReader(IndexReaderCache.java:59)
at org.neo4j.kernel.impl.api.IndexReaderCache.getOrCreate(IndexReaderCache.java:50)
at org.neo4j.kernel.impl.newapi.AllStoreHolder.indexReadSession(AllStoreHolder.java:389)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.nodesByLabelAndProperty(TransactionImpl.java:703)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.findNodes(TransactionImpl.java:345)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.findNode(TransactionImpl.java:315)
at com.neo4j.server.security.enterprise.systemgraph.versions.SupportedEnterpriseVersion.currentGetPrivilegeForRole(SupportedEnterpriseVersion.java:212)
at com.neo4j.server.security.enterprise.systemgraph.versions.SupportedEnterpriseVersion.currentGetPrivilegeForRoles(SupportedEnterpriseVersion.java:200)
at com.neo4j.server.security.enterprise.systemgraph.versions.EnterpriseVersion_4_41.getPrivilegeForRoles(EnterpriseVersion_4_41.java:80)
at com.neo4j.server.security.enterprise.systemgraph.EnterpriseSecurityGraphComponent.getPrivilegeForRoles(EnterpriseSecurityGraphComponent.java:151)
at com.neo4j.server.security.enterprise.systemgraph.SystemGraphRealm.getPrivilegesForRoles(SystemGraphRealm.java:317)
at com.neo4j.server.security.enterprise.auth.MultiRealmAuthManager.getPermissions(MultiRealmAuthManager.java:319)
at com.neo4j.server.security.enterprise.auth.StandardEnterpriseLoginContext.mode(StandardEnterpriseLoginContext.java:57)
at com.neo4j.server.security.enterprise.auth.StandardEnterpriseLoginContext.authorize(StandardEnterpriseLoginContext.java:98)
at com.neo4j.server.security.enterprise.auth.StandardEnterpriseLoginContext.authorize(StandardEnterpriseLoginContext.java:28)
at org.neo4j.fabric.transaction.TransactionManager.begin(TransactionManager.java:62)
at org.neo4j.fabric.bolt.BoltFabricDatabaseService.beginTransaction(BoltFabricDatabaseService.java:101)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractTransactionStateMachineSPI.beginTransaction(AbstractTransactionStateMachineSPI.java:77)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$1.beginTransaction(TransactionStateMachine.java:241)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$1.execute(TransactionStateMachine.java:206)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$1.run(TransactionStateMachine.java:198)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine.run(TransactionStateMachine.java:84)
at org.neo4j.bolt.v3.runtime.ReadyState.processRunMessage(ReadyState.java:88)
at org.neo4j.bolt.v3.runtime.ReadyState.processUnsafe(ReadyState.java:59)
at org.neo4j.bolt.v4.runtime.ReadyState.processUnsafe(ReadyState.java:47)
at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:143)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:91)
at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:90)
at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:148)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:237)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:172)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:162)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:246)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:229)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:834)
OK, so that log says that the database got a query, attempted to run it, and that the query failed because it's trying to do something that the database doesn't support.
Can you include the actual query? (You can capture it even if you don't know the client code, by enabling query logging on the server side)
Possibilities that are coming to mind:
You're using Community and the query is doing something that's Enterprise Only
You're using an older client and it's issuing a query that's doing something out of date for your version