Release Date: 10 December 2019
We are proud to announce a release candidate of our Neo4j Database – Neo4j Enterprise Edition 4.0 Release Candidate 1 (in short Neo4j EE 4.0 RC1). This release is distributed publicly: we encourage you to try out all the new features. Neo4j 4.0 will be available within Neo4j Desktop Canary Version. Neo4j 4.0 is the core technology of the Neo4j Graph Platform.

Important Information

This release candidate is nearly ready to be generally available, but there may still be issues  to fix, therefore this release should not be used in production. Issues in the release may lead to data corruption and eventually data loss. This version is considered “feature complete”, although we may consider to add, modify or remove features at the last minute: users and developers are therefore advised to plan the use of the new features with caution.


  • Multiple databases available at runtime in standalone and Causal Cluster installations
  • Internal metadata repository “system” database, available in standalone and in Causal Cluster
  • Schema-based security and Role Based Access Control
  • Role and user management capabilities
  • Cypher administration commands
  • Sharding and federated access to databases with Neo4j Fabric
  • Java, Javascript and .NET Reactive drivers with Server-to-Client flow control
  • Bolt protocol with keepalive signal
  • New index population algorithm for the native index provider
  • Transaction log folders to easily distribute I/O workload on multiple devices
  • Memory constrain control for transactions
  • A new neo4j:// scheme including bolt and routing protocol, available in all editions and installations
  • A new, experimental version of Spring Data Neo4j based on reactive drivers (SDN/RX).
The Release Notes and changelog for the Milestone Release, Neo4j 4.0 EE MR3, are available here.

Detailed Changes and Docs

For a list of fixes and improvements, please see the changelog below. A preview of the documentation is available here.

Available Packages

Available Linux Repositories

Upgrading to Neo4j EE 4.0 RC1

In order to migrate from Neo4j 3.5 to Neo4j EE 4.0 RC1, follow the migration guide available here.

Neo4j 4.0 RC1 Changelog


  • Fix a bug that would sometimes cause a NullPointerException to be thrown when generating index update commands for transaction changes that partially matched a full-text index.
  • The listAvailableAnalyzers() procedure now includes the stop-word list used by each analyzer.
  • Backport of query logging at start of query
  • Transaction id is now available for transaction event handles, even for “zero-change write transactions.”
  • Fix a bug in internal relationship traversal.


  • Fixed an IDP planner edge case where complex joins fail to find a solution due to the presence of ignored argument variables
  • Fixes regressions with PatternComprehensions inside of head or single element accesses/list slices . Examples:
head( [ (a)-->(b) | b.prop ] )
[ (a)-->(b) | b.prop ][1]
[ (a)-->(b) | b.prop ][..5]
  • Improve error message for procedure calls
  • Added a nicer error message if the planner fails to find a plan
  • Add support for sub-type values in procedure parameter default values
  • Fix bug where Number-typed procedure parameters did not support default values


  • neo4j-admin set-initial-password now takes an optional flag –require-password-change


  • Various small improvements to sysinfo PR: #975
  • Enable database switching with :use xx in multi-statement command PR: #993
  • Fix errors in community edition PR: #999
  • Make neo4j-browser compatible with future versions of Neo4j PR: #1001
  • Check if db exists before switching to it, throw if not PR: #1007
  • Update neo4j-driver to 4.0.0 PR: #1009

Cypher Shell

  • Turn encryption off by default
  • Support for providing Cypher parameters from the command line with -P or –param “name => value”.
  • Support for providing a Cypher input file from the command line with -f or –file.
  • Support for interactively executing Cypher statements from a file with :source statements.cypher.
  • Show active database name in the prompt in interactive mode.
  • Support for interactively switching database with :use <database name> (or just :use for the default database).
  • Support for selecting database from the command line with -d or –database.
  • Support for changing an expired password from the interactive password prompt.


  • Fix handling of IPv6 addresses in the backup command.