Release Date: 10 September 2026
Important Notice
We have identified an issue in 2026.08.0 that could cause some queries to fail. This bug, introduced in 2026.08.0, will be fixed in a pending patch release. Please do not use the 2026.08.0 release.Advanced notice of changes scheduled for after 2026.LTS
Read moreNew features and improvements
Server
- There is a vector API startup warning, you may see the following message when starting Neo4j: WARNING: Using incubator modules: jdk.incubator.vector This is expected. Neo4j now enables the JDK Vector API by default so that Lucene can use SIMD-accelerated vector operations on supported hardware. Because the Vector API is still an incubating JDK module, the JVM emits this warning at startup. The warning by itself does not indicate a Neo4j failure, and no action is required. See Operations manual -> Changes in Neo4j 2025-2026 series.
Clustering
- Cross-Cluster Database Replication (CCDR) is now GA. CCDR is intended for disaster recovery across data centers or cloud regions and for general replication use cases. It allows a standard database to be replicated to a second separate cluster with `CREATE REPLICA DATABASE`, which can be failed over with a single `dbms.promoteReplicaDatabase()` call. For details on the feature and its disaster recovery mechanics, see Operations manual -> Replicating databases across clusters. For guidance on recommended multi-region cluster designs, see Operations manual -> Designing resilient multi-region cluster deployments.
Security
- Update Apache Shiro library to version 3.0.0 as the Apache Shiro 2.x series is now EOL.
- Update log4j version to 2.26.1 to fix CVE-2026-49844 .
- Update Google Secret Manager library to fix CVE-2025-55163 (in a Netty Dependency).
Admin
Neo4j-admin
- `neo4j-admin database backup` has a new option `–skip-empty-diffs` that can be used with differential backups. If there are no new transactions to back up, artifacts are not created. This argument can only be used if metadata is explicitly excluded with `–include-metadata=none`. See Operations manual -> Back up an online database.
- `neo4j-admin server report` can now collect details of databases, servers, graphcounts and indexes using new classifiers. For the new classifiers, Neo4j access is needed, and there are additional options for the command to specify the URI, username and password to use to collect this data. This follows the same rules as cypher-shell, allowing environment variables and other methods of supplying the connection credentials.
- `neo4j-admin server report` can now apply obfuscation of the query logs that it collects. This is only available for JSON formatted query logs. See Operations Manual -> Generate a report about the system.
Scalability
Infinigraph
- dbms.recreateDatabase procedure can now be used to recreate a sharded property database. See Operations Manual -> Recreating sharded property databases.
Language
Cypher 25
- Introduces the new UUID type alongside new constructor functions uuid(), uuid(name :: STRING) and uuid(mostSigBits :: INTEGER, leastSigBits :: INTEGER) as well as helper functions; uuid.leastSignificantBits(uuid :: UUID) and uuid.mostSignificantBits(uuid :: UUID). See the Cypher Manual -> UUIDs and UUID functions.
- Introduction of string interpolation, a STRING literal syntax (s”…” or S”…”) that embeds expressions enclosed in {} directly within a string. See the Cypher Manual -> String interpolation.
- Allows PBAC rules to have predicates which check for the presence of a value in a list property e.g. GRANT … FOR (n) WHERE ‘gold’ IN n.clearanceLevels TO role. This also allows other predicates to have the property on the right-hand side. e.g. GRANT … FOR (n) WHERE 1 > n.level TO role.See Operations Manual -> Property-based access control.
- LIMIT/SKIP INTEGER as well as LOAD CSV’s FIELDTERMINATOR STRING no longer considered sensitive for logging purposes (I.e they will now show up unobfuscated in query log)
Deprecations
Server
- Running the Neo4j platform requires a pre-installed, compatible Java Virtual Machine (JVM), we are currently supporting both Java SE 21 and Java SE 25. Note that Java SE 21 support will end with the upcoming Neo4j Enterprise Edition Long-Term Support (LTS) release. To prevent potential service disruptions, we strongly encourage migrating to Java SE 25.
Security
- In accordance with RFC 10015, legacy SSL / TLS 1.2 key exchange methods are being deprecated. This deprecation applies to Diffie-Hellman (DH) over finite fields (FFDHE), RSA, and static Elliptic Curve Diffie-Hellman (ECDH) cipher suites. To prevent future service disruption, we strongly advise transitioning to TLS 1.3. For most deployments, TLS 1.3 will already be automatically used.
See Operations Manual -> Current deprecations.
See Cypher Manual -> deprecations-additions-removals-compatibility/
Bug fixes
Admin
- Fixed bug that caused excess resource usage in neo4j admin import when importing from Parquet.
Language
Cypher 25
- Fix null / 0 raising a division-by-zero error instead of returning null as per the GQL specification and the documented behaviour.
- Fixes a bug in Composite where subquery dependencies were mistakenly propagated to all WITH clauses. For aggregating WITH clauses, this incorrectly altered the set of grouping keys.
- Fixes an issue where a lone USE was inside a COUNT/EXISTS subquery expression
- Fix bug where dynamic property targets could observe earlier assignments in the same SET clause: CREATE (:A {x: 0, y: 1}); MATCH (n:A) SET n[‘x’] = n.y, n[‘y’] = n.x; MATCH (n:A) RETURN n.x AS x, n.y AS y; now correctly returns x=1, y=0 as in 2026.05.0 and before, instead of x=1, y=1.
- Fixed Memory Errors and Incorrect Counts in Composite Database Subqueries
- The Issue: When you passed an outside variable into a CALL subquery on a composite database, Neo4j was mistakenly injecting that variable into every WITH clause inside the subquery.
- The Impact: This caused two major problems for aggregations (like count(*)). Neo4j accidentally treated the injected variable as a “grouping key,” which is used to divide aggregated data into different buckets. First, if your variable was a massive list (like the 100,000 numbers in the example), the database vastly overestimated the memory needed to build those buckets. It preemptively killed the query to avoid an Out Of Memory (OOM) error. Second, if your query found no data, this buggy grouping caused it to return an empty result instead of correctly returning a count of 0.
- The Fix: Cypher no longer incorrectly forces these outer dependencies into your aggregations. Your queries will no longer be rejected due to fake memory spikes, and empty counts will return 0 correctly.
- Eg.
USE composite.constituent
WITH range(1, 100000) AS big
CALL (big) {
UNWIND range(1, 1000) AS i
MATCH (:NoExistentLabel) // or WITH * WHERE predicateEvaluatingToFalse
WITH count(*) AS c
RETURN c
}
RETURN c
Please refer to the changelog for full details of the changes.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 2026.08.0 – The most popular community library developed for the database, is fully supported (included in Labs directory).
- Bloom 6.x-2.36.0 – 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 2026.08.31+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 2026.08.0 – Neo4j’s GenAI plugin provides functions and procedures to interact with external AI providers through Cypher, such as for creating vector embeddings and generating text.
- Neo4j Graph Data Science 2026.08.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. )
- Enterprise Fleet Management is no longer bundled with the DBMS package as it is now included in Neo4j.
- Neo4j Ops Manager 1.15.5 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).
Advanced notice of upcoming changes
Query Log Default Format
The default query log format for new installations will change after the next Long Term Support (LTS) release. At the moment, it is set to PLAIN format by default. From the release after the next LTS, the default will be JSON format. If you are upgrading and preserving your current server-logs.xml file, then there will be no change, as support for PLAIN will remain, only the default value for new installations is changing. We recommend moving to JSON for query logging as it contains more information, though the resulting log file size will increase.High_limit store format
Heads-up: High_limit store format removal after the next LTS The High_limit store format was deprecated in Neo4j 5.23. The upcoming long-term support (LTS) release will be the final version to support reading, writing, and migrating High_limit databases. Beyond that LTS, Neo4j will not start if it detects a High_limit store. Please take note of the following:- The next LTS is the last supported migration window. Reading, writing, and migrating High_limit databases remains supported until the next LTS release only.
- Databases using the High_limit format will fail to start after the next LTS. No fallback or compatibility layer will be available.
- Migration to the Block format is required before upgrading beyond the next LTS. We strongly recommend planning and completing your offline migration during or prior to your upgrade to that LTS release.