Release Date: 17 March 2020
Neo4j 4.0.2 is a maintenance release with many important improvements and fixes.


  • Fix bug where store upgrade could see IndexOutOfBoundsException when upgrading store that was much larger than available memory.
  • Add jvm argument,

    -Dorg.neo4j.kernel.impl.storemigration.RecordStorageMigrator.migration_threads=, to set number of threads used to read and write when upgrading store. By setting a lower value the contention on disk can be reduced. Default value is the number of processors available to the process.
  • The cluster formation process changes the system database on the bootstrapper node and needs to remove the system database from the other nodes for consistency, but if the formation fails at the wrong time and is attempted again with another node being selected as the bootstrapper then that node will have saved the system database to a temporary location and restore it from there.
  • If the system database fails to bootstrap the DBMS will now perform an orderly shutdown, rather than hanging.
  • Fix bug where the wrong results could be returned in pipelined runtime whenever a filter came after a distinct.
  • Fixed bug in compiled expressions where a null path from an OPTIONAL MATCH inserted into nested functions lead to an unexpected error.

Detailed Changes and Docs

For the complete list of all changes, please see the changelog. Look for 4.0 Operations manual here.