Hi,
I tried to run the following example query taken from the https://dozerdb.org/ website with dozerdb 5.26.3:
CREATE CONSTRAINT FOR (n:NodeX) REQUIRE n.email IS NOT NULL;
But I am getting the error message Property existence constraint requires Neo4j Enterprise Edition and the database seems to be corrupted (more detail belows).
I was under the assumption that DozerDB ships with its own implementation of the constraint logic and I do not need the enterprise version for this. Am I mistaken here?
Thanks and with kind regards
Andreas
Error message in the logs:
ERROR Client triggered an unexpected error [Neo.DatabaseError.Transaction.TransactionCommitFailed]: Could not apply the transaction: Transaction #7 {started 2025-03-17 10:56:18.898+0000, committed 2025-03-17 10:56:18.958+0000, with 5 commands in this transaction, lease -1, latest committed transaction id when started was 3, consensusIndex: -1} to the store after written to log., reference 0c5624a6-249c-4242-88e0-c12deb2afa6e.
ERROR Client triggered an unexpected error [Neo.DatabaseError.Transaction.TransactionStartFailed]: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details., reference 9bd2aae1-3e75-4610-a2e5-eeede0259ce4.
Stack trace from debug.log file, please note the last java.lang.IllegalStateException: Property existence constraint requires Neo4j Enterprise Edition
2025-03-17 11:00:19.553+0000 ERROR [o.n.b.f.StateMachineImpl] Client triggered an unexpected error [Neo.DatabaseError.Transaction.TransactionStartFailed]: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details., reference 503a543b-6aba-4c8f-8cac-dfe3a32deb0a.
org.neo4j.bolt.protocol.common.fsm.error.TransactionStateTransitionException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:56) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:32) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.TransactionalStateTransition.process(TransactionalStateTransition.java:42) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.fsm.state.MultiTransitionState.process(MultiTransitionState.java:53) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.fsm.StateMachineImpl.process(StateMachineImpl.java:157) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection$ProcessJob.perform(AtomicSchedulingConnection.java:631) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection.executeJob(AtomicSchedulingConnection.java:335) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection.doExecuteJobs(AtomicSchedulingConnection.java:314) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection.executeJobs(AtomicSchedulingConnection.java:209) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: org.neo4j.bolt.tx.error.statement.StatementExecutionException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:143) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 13 more
Caused by: org.neo4j.graphdb.TransactionFailureException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginKernelTransaction(GraphDatabaseFacade.java:159) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransactionInternal(GraphDatabaseFacade.java:124) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransaction(GraphDatabaseFacade.java:106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginInternalTransaction(LocalDatabaseTransactionFactory.java:119) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:89) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:50) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.createTransactionFor(RouterTransactionImpl.java:148) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$0(RouterTransactionImpl.java:134) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.startReadingTransaction(RouterTransactionImpl.java:386) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.registerNewChildTransaction(RouterTransactionImpl.java:361) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$1(RouterTransactionImpl.java:133) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.transactionFor(RouterTransactionImpl.java:131) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionContextImpl.transactionFor(RouterTransactionContextImpl.java:64) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.QueryRouterImpl.executeQuery(QueryRouterImpl.java:276) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.executeQuery(QueryRouterBoltSpi.java:160) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:136) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 13 more
Caused by: org.neo4j.internal.kernel.api.exceptions.TransactionFailureException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at jdk.internal.reflect.GeneratedConstructorAccessor54.newInstance(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[?:?]
at org.neo4j.internal.helpers.Exceptions.disguiseException(Exceptions.java:266) ~[neo4j-common-5.26.3.jar:5.26.3]
at org.neo4j.monitoring.DatabaseHealth.assertNoPanic(DatabaseHealth.java:52) ~[neo4j-monitoring-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelImpl.beginTransaction(KernelImpl.java:133) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelImpl.beginTransaction(KernelImpl.java:120) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginKernelTransaction(GraphDatabaseFacade.java:157) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransactionInternal(GraphDatabaseFacade.java:124) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransaction(GraphDatabaseFacade.java:106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginInternalTransaction(LocalDatabaseTransactionFactory.java:119) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:89) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:50) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.createTransactionFor(RouterTransactionImpl.java:148) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$0(RouterTransactionImpl.java:134) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.startReadingTransaction(RouterTransactionImpl.java:386) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.registerNewChildTransaction(RouterTransactionImpl.java:361) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$1(RouterTransactionImpl.java:133) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.transactionFor(RouterTransactionImpl.java:131) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionContextImpl.transactionFor(RouterTransactionContextImpl.java:64) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.QueryRouterImpl.executeQuery(QueryRouterImpl.java:276) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.executeQuery(QueryRouterBoltSpi.java:160) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:136) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 13 more
Caused by: org.neo4j.internal.kernel.api.exceptions.TransactionApplyKernelException: Failed to apply transaction: Transaction #7 {started 2025-03-17 10:56:18.898+0000, committed 2025-03-17 10:56:18.958+0000, with 5 commands in this transaction, lease -1, latest committed transaction id when started was 3, consensusIndex: -1}
at org.neo4j.internal.recordstorage.RecordStorageEngine.apply(RecordStorageEngine.java:557) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.applyToStore(InternalTransactionCommitProcess.java:102) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.commit(InternalTransactionCommitProcess.java:73) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.DatabaseTransactionCommitProcess.commit(DatabaseTransactionCommitProcess.java:45) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.commit.DefaultCommitter.commit(DefaultCommitter.java:118) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commitTransaction(KernelTransactionImplementation.java:1106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:992) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:965) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.lambda$commit$0(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.safeTerminalOperation(TransactionImpl.java:333) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:176) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.lambda$commit$0(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.translateLocalError(LocalDatabaseTransaction.java:162) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.commit(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.doOnChildren(RouterTransactionImpl.java:348) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.commit(RouterTransactionImpl.java:253) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.commit(QueryRouterBoltSpi.java:165) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.commit(TransactionImpl.java:180) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:49) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:32) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 12 more
Caused by: java.lang.IllegalStateException: Property existence constraint requires Neo4j Enterprise Edition
at org.neo4j.kernel.impl.constraints.StandardConstraintSemantics.readConstraint(StandardConstraintSemantics.java:143) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.internal.schema.SchemaCache$SchemaCacheState.addSchemaRule(SchemaCache.java:518) ~[neo4j-storage-engine-util-5.26.3.jar:5.26.3]
at org.neo4j.internal.schema.SchemaCache.addSchemaRule(SchemaCache.java:138) ~[neo4j-storage-engine-util-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.BridgingCacheAccess.addSchemaRule(BridgingCacheAccess.java:41) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.NeoStoreTransactionApplier.onSchemaRuleChange(NeoStoreTransactionApplier.java:155) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.NeoStoreTransactionApplier.visitSchemaRuleCommand(NeoStoreTransactionApplier.java:147) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.Command$SchemaRuleCommand.handle(Command.java:454) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.TransactionApplierFacade.visit(TransactionApplierFacade.java:49) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.TransactionApplierFacade.visit(TransactionApplierFacade.java:32) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.transaction.log.CompleteCommandBatch.accept(CompleteCommandBatch.java:77) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.RecordStorageEngine.apply(RecordStorageEngine.java:551) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.applyToStore(InternalTransactionCommitProcess.java:102) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.commit(InternalTransactionCommitProcess.java:73) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.DatabaseTransactionCommitProcess.commit(DatabaseTransactionCommitProcess.java:45) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.commit.DefaultCommitter.commit(DefaultCommitter.java:118) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commitTransaction(KernelTransactionImplementation.java:1106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:992) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:965) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.lambda$commit$0(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.safeTerminalOperation(TransactionImpl.java:333) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:176) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.lambda$commit$0(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.translateLocalError(LocalDatabaseTransaction.java:162) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.commit(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.doOnChildren(RouterTransactionImpl.java:348) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.commit(RouterTransactionImpl.java:253) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.commit(QueryRouterBoltSpi.java:165) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.commit(TransactionImpl.java:180) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:49) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:32) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 12 more
Docker command used to run neo4j
docker run \
-p7474:7474 -p7687:7687 \
-v $HOME/neo4j/data:/data \
-v $HOME/neo4j/logs:/logs \
-v $HOME/neo4j/import:/var/lib/neo4j/import \
-v $HOME/neo4j/plugins:/plugins \
--env NEO4J_AUTH=neo4j/password \
--env NEO4J_PLUGINS='["apoc"]' \
--env NEO4J_apoc_export_file_enabled=true \
--env NEO4J_apoc_import_file_enabled=true \
--env NEO4J_dbms_security_procedures_unrestricted='*' \
graphstack/dozerdb:5.26.3.0
Hi,
I tried to run the following example query taken from the https://dozerdb.org/ website with dozerdb 5.26.3:
But I am getting the error message
Property existence constraint requires Neo4j Enterprise Editionand the database seems to be corrupted (more detail belows).I was under the assumption that DozerDB ships with its own implementation of the constraint logic and I do not need the enterprise version for this. Am I mistaken here?
Thanks and with kind regards
Andreas
Error message in the logs:
Stack trace from debug.log file, please note the last
java.lang.IllegalStateException: Property existence constraint requires Neo4j Enterprise EditionDocker command used to run neo4j