Release Date: 6 February 2025
Release Note for Neo4j 2025.01.0 (6 February 2025)
Upgrading from v5.x The Neo4j upgrade guide has been updated with advice specific to upgrading to Neo4j 2025.x. Breaking changes have been kept to a minimum, there are no breaking changes to Cypher and applications that query Neo4j v5.x are compatible with Neo4j 2025.01. Clusters can perform rolling upgrades from v5.26 to 2025.01 without downtime. There are some changes to platform support and breaking changes to the operations surface that must be reviewed. There is a complete list in the upgrade guide here.Platform & Supportability
- Operating Systems
- The following Operating Systems (OSes) are now supported, when used for a database deployment.
- MacOS 13 (Ventura)
- MacOS 14 (Sonoma)
- MacOS 15 (Sequoia)
- Red Hat Enterprise Linux (RHEL) 9.2
- Red Hat Enterprise Linux (RHEL) 9.4
- Ubuntu Server 22.04
- Ubuntu Server 24.04
- Ubuntu Desktop 22.04
- Ubuntu Desktop 24.04
- Windows Desktop 11
- Windows Server 2022
- Windows Server 2025
- The following OSes are no longer supported and customers are recommended to upgrade to a fully supported OS.
- MacOS 11 (Big Sur)
- MacOS 12 (Monterey)
- Windows Desktop 10
- Amazon Linux 2 (also known as the 2022 AMI)
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- Windows 10
- Windows Server 2016
- Windows Server 2019
- The following Operating Systems (OSes) are now supported, when used for a database deployment.
- Java Runtime Environment (JRE)
- Java SE 17 Platform is no longer supported. It is recommended to move to Java SE 21, which is supported with the Neo4j Database 5.14 onwards. See the Java section of the System Requirements Documentation for more information.
- Drivers: 5.x drivers will work with Neo4j 2025.x releases. 4.4 LTS drivers will also work, though with a reduced feature set, and these will in future only reveive fixes for critical bugs/security issues. Drivers below 4.4.x are not compatible with Neo4j 2025.x
Neo4j Server
- For the current release dbms.components() will return ‘5.27.0’ in the column versions. This is to support existing client applications which rely on the previous version format.
Surface for Developers and Data Scientists
- The cypher query option CYPHER eagerAnalyzer=[ir | lp] now raises a deprecation warning. This option previously allowed users to select between eagerness analysis logic based on either intermediate representation or the newer logic based on logical plans. The planner now only uses the logical plan based implementation, regardless of the option provided.
- Additive GQLSTATUS error codes raised during the execution of procedures and user-defined functions. Documentation is available here.
- Database names can now start with a digit. Documentation is available here.
- Introducing Bolt 5.8. Documentation is available here.
Cluster
- Leaders can now make themselves non-voters in the membership set. This decreases the time it takes to deallocate servers hosting many databases.
- A new procedure dbms.unquarantineDatabase has been introduced. This deprecates dbms.quaranineDatabase procedure. It does not need to be executed through Bolt. While lifting the quarantine, different “wipe” modes are offered:
- keepStateKeepStore – do nothing; leave store and cluster state as they are.
- replaceStateKeepStore – join as a new member, clearing the current cluster state but keeping the store.
- replaceStateReplaceStore – participate as a new member, clearing the store and the current cluster state.
- Removed the option to set GZIP as a compression algorithm for cluster ports. Allowed values are Snappy, Snappy_validating, LZ4, LZ4_high_compression, LZ_validating, and LZ4_high_compression_validating. Documentation is available here.
- URLConnectionSeedProvider no longer supports “file”. The supported options are “ftp”, “http”, and “https”. Documentation is available here.
- In the Java Plugins API, SeedProvider has been removed and replaced by DatabaseSeedProvider. Documentation is available here.
- `CREATE OR REPLACE DATABASE` command now supports `existingData`, `seedURI`, `seedConfig`, and `seedCredentials`. Documentation is available here.
Configuration
- `server.panic.shutdown_on_panic` setting has a new default which is `true` now instead of `false`
- The default format for debug.log is JSON format Documentation is available here.
- Changes server.logs.config and server.logs.user.config settings to depend on the provided path for the conf directory instead of having the conf directory encoded in the default values. This fixes a bug where these settings would not respect any non-default configuration directory location. Documentation is available here.
- Remove the deprecated setting “db.logs.query.annotation_data_as_json_enabled”. All annotation data is now formatted as JSON by default.
- New default values: “db.tx_log.rotation.retention_policy=2 days 2G” and “server.metrics.csv.rotation.compression=zip“. Documentation is available here.
Kernel
- All enterprise databases are now recreated when restarted after being stopped by the DBMS.
- Always create an index with the default index provider. Index providers don’t control the behaviour of an index anymore (since 5.0), and the latest one is always the correct one to use.
- Improved cloud object store integration performance when downloading data from S3. For example when using SEED FROM URI or neo4j-admin restore.
Metrics
- Added two new metrics neo4j.dbms.vm.cpu_load.system and neo4j.dbms.vm.cpu_load.process exposing equivalent JVM metrics for CPU usage. Documentation is available here.
- Metric <prefix>.store.size.total has been renamed to <prefix>.store.size.full. Documentation is available here.
- Metrices <prefix>.cluster.raft.snapshot_attempt, <prefix>.cluster.raft.snapshot_success, and <prefix>.cluster.raft.snapshot_fail have been introduced. Documentation is available here.
Neo4j-admin
- The admin commands will now write exception information to a neo4j-admin-exception-trace-DATETIME.log file in the logs folder even if verbose is not enabled. The path to the file is included in the console output. Documentation is available here.
- Moved log file created by the import admin command to be in a separate file (neo4j-admin-import-DATETIME.log in log folder) rather than using the server debug.log, which can clash with server logging. Documentation is available here.
- Deprecated neo4j-admin database aggregate-backup is replaced by neo4j-admin backup aggregate. Documentation is available here.
- Fixed neo4j-admin server report command to filter metrics by database when –database option is used.
Security
- SSL/TLS hostname verification is now enabled by default. If the deployed TLS certificates have a different hostname in the Common Name (CN) or Subject Alternative Names (SAN) fields than the actual host, this needs to be corrected to prevent any disruptions. See the SSL framework documentation for more details.
- CBC (cipher block chaining) ciphers, as used in TLS v1.2 network encryption, have several security vulnerabilities that make them less secure than alternative methods. The Internet Engineering Task Force (IETF) does not recommend using CBC-based ciphers (RFC 8447), and these ciphers were removed from the TLS standard with the development of TLS v1.3.
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
Fixes
- Server
- Fixed an issue where dense relationships could be indexed twice. However, this would not produce any functional error, but could be observable when running consistency checks for a database having any Lucene indexes for relationships.
- Fixed an issue removing the last property from a dense relationship, if that property was indexed. Recovery, or clustered application of that operation would fail.
- Fixed an issue with DDL, which is not transaction safe
- Fixed a warning message around usage of Java Compressed Ordinary Object Pointers and heaps in the range of 32-48G
- Cypher
- Fixed a bug where in certain cases where the collect function wasn’t preserving the order defined in the previous query clause in the parallel runtime.
Bundled products
The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release.- APOC Core 2025.01.0 – The most popular community library developed for the database, is fully supported (included in Labs directory).
- Bloom 6.x-2.18.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details. (Requires a License)
- Browser 2025.01.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database.
- Neo4j GenAI Plugin 2025.01.0 -The GenAI plugin delivers integrations with various generative AI services, including support for transforming text data into vector embeddings using VertexAI, OpenAI, or Amazon Bedrock. The resulting vector embeddings can be used together with Neo4j’s vector search indexes.
- Neo4j Graph Data Science 2.13.1 is a compatible version of the connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a License. )
- Neo4j Ops Manager 1.11.3 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).